gpt4 book ai didi

reactjs - Material-UI - 支持 babel-plugin-react-css-modules 和 rtl app

转载 作者:行者123 更新时间:2023-12-01 21:49:20 26 4
gpt4 key购买 nike

Material 用户界面:v4.8.2
react :v16.12.0

带有 rtl 应用程序的 babel-plugin-react-css-modules - 我想使用 injectFirst 但后来我收到警告:Material-UI:您不能同时使用 jss 和 injectFirst Prop 。

我的猜测是我应该以不同的方式定义 jss,以便它支持 rtl 和 css 模块。

// Configure JSS - How should I add here the css-modules styles?
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });

对于 rtl 我应该这样做:

// Configure JSS
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });

<StylesProvider jss={jss}>
<ThemeProvider theme={theme}>
<AppContainer />
</ThemeProvider>);
</StylesProvider>

对于 css-modules 样式我应该做的:

<StylesProvider injectFirst>
<ThemeProvider theme={theme}>
<AppContainer />
</ThemeProvider>);
</StylesProvider>

谁能告诉我应该如何将两者结合起来?

最佳答案

终于解决了。

执行以下操作:

添加jss-insertion-point就在 <head> 下面

<head>
<!-- jss-insertion-point -->
...
</head>

根.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;

关于reactjs - Material-UI - 支持 babel-plugin-react-css-modules 和 rtl app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59753893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com