material-ui - 将素材ui从v4升级到v5后,jss-rtl插件不起作用
问题描述
我将材料ui v4升级到v5,此后jss-rtl无法正常工作。该项目是用next js编写的。_app.js:
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });
const emotionCache = {
LTR: createCache({
key: 'ltr',
prepend: true,
}),
RTL: createCache({
key: 'css',
stylisPlugins: [rtlPlugin],
prepend: true,
}),
};
const cache = createCache({ key: 'css' });
cache.compat = true;
const selectedCache = direction !== 'rtl' ? emotionCache.LTR : emotionCache.RTL;
<StyledEngineProvider injectFirst>
<StylesProvider jss={jss}>
{/* <CacheProvider value={selectedCache}> */}
<ThemeProvider theme={themes}>
<CssBaseline />
...
</ThemeProvider>
{/* </CacheProvider> */}
</StylesProvider>
</StyledEngineProvider>
CacheProvider 是情感/反应组件。我认为它与 jss 有冲突,所以我对此发表了评论,但它没有改变。当 CacheProvider 在 RTL 模式下启用时,它可以与材质组件一起正常工作。但是我在 jss 中编写的其他元素不会在 rtl 中翻转。我在材料 v4 中检查了这些元素具有如下类:.jss45,但在 v5 中它没有这些类,而是它们的类是这样的:.makeStyles-listContainer-201 在 RTL 模式下不会改变。
解决方案
推荐阅读
- ios - 为非程序员快速识别代码生成的 UIView 的快速方法是什么?
- javascript - Safari 浏览器出现空响应头 ajax 错误
- java - XML 外部实体注入:在此行上显示错误 DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(sr));
- cyberduck - 同步与上传(用于备份到 webdav 服务器)
- postgresql - Kafka Connect - JSON 转换器 - JDBC Sink 连接器 - 列类型 JSON
- linux - 如何在linux中放大和缩小终端控制台
- hyperledger-fabric - Hyperledger Fabric 中链码级别的 ACL 跨多个组织的用户的唯一 ID
- python - 显示列修改错误。代码在循环外完美运行,但在循环内失败
- ios - 在颤动中将应用程序/八位字节流转换为图像/jpeg/png?
- python - Keras: poor performance with ImageDataGenerator