next.js - 使用样式组件在 LTR 和 RTL 之间切换?
问题描述
我正在使用 next.js 构建一个英语-阿拉伯语应用程序,并希望使用户能够在两种语言之间切换。
我从 next.js 中找到了这个示例:with-styled-components-rtl。它使用 StylisRTLPlugin,它会翻转所有 CSS 样式以适应 RTL 布局:
// _document.js
<StyleSheetManager stylisPlugins={[stylisRTLPlugin]}>
<App {...props} />
</StyleSheetManager>
它工作正常,但问题是我无法stylisRTLPlugin
根据当前的有条件删除,因为我locale
无法访问useRouter()
in _document.js
。
我想能够做什么:
<StyleSheetManager stylisPlugins={locale === 'ar' ? [stylisRTLPlugin] : null}>
<App {...props} />
</StyleSheetManager>
解决方案
将此配置添加到您的.babelrc
以强制您的样式在服务器上呈现。
"plugins": [
[
"styled-components",
{
"ssr": true,
}
]
]
推荐阅读
- javascript - 如何检查javascript是否在pyqt5中完成加载?
- unit-testing - 无法在 Spock 中的构造函数上创建间谍
- javascript - 将垂直线的高度(在 :after 中开发)设置为特定点,这样我们就不必在不同的设备上重新调整它
- unit-testing - 测试框架意外退出 - MAC 上的 Dart 项目
- python-3.x - 如何在熊猫数据框具有非NA值的二维矩阵中查找所有索引
- html - 引导 HTML 打印(铬)
- html - 占位符文本不会消失
- activemq - 如何改进大队列的消息处理?
- git - 多于一行的 git commit 消息
- php - 无法使用 xampp 和 pdo 连接到 MySQL 数据库