che*_*nop 2 reactjs material-ui react-css-modules jss babel-plugin-react-css-modules
材料界面:v4.8.2
反应:v16.12.0
babel-plugin-react-css-modules 和 rtl 应用程序 - 我想使用 injectFirst 但后来我收到警告:
Material-UI: you cannot use the jss and injectFirst props at the same time.
我的猜测是我应该对 jss 进行不同的定义,以便它支持 rtl 和 css 模块。
// Configure JSS - How should I add here the css-modules styles?
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });
Run Code Online (Sandbox Code Playgroud)
对于 rtl 我应该这样做:
// Configure JSS
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });
<StylesProvider jss={jss}>
<ThemeProvider theme={theme}>
<AppContainer />
</ThemeProvider>);
</StylesProvider>
Run Code Online (Sandbox Code Playgroud)
对于 css-modules 样式,我应该这样做:
<StylesProvider injectFirst>
<ThemeProvider theme={theme}>
<AppContainer />
</ThemeProvider>);
</StylesProvider>
Run Code Online (Sandbox Code Playgroud)
任何人都可以请建议我应该如何结合两者?
终于解决了。
请执行下列操作:
jss-insertion-point在下面添加<head>
<head>
<!-- jss-insertion-point -->
...
</head>
Run Code Online (Sandbox Code Playgroud)
根.js:
import rtl from 'jss-rtl';
import { StylesProvider, jssPreset } from '@material-ui/core/styles';
let jss = create({
plugins: [...jssPreset().plugins, rtl()],
insertionPoint: 'jss-insertion-point',
});
const Root = () => (
<Provider store={store}>
<StylesProvider jss={jss}>
<ThemeProvider theme={theme}>
<Router history={history} routes={routes}/>
</ThemeProvider>);
</StylesProvider>
</Provider>
);
export default Root;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
271 次 |
| 最近记录: |