next.js - 使用样式组件在 LTR 和 RTL 之间切换?

标签 next.js styled-components

我正在使用 next.js 构建英语-阿拉伯语应用程序,并希望用户能够在两种语言之间切换。
我从 next.js 找到了这个例子:with-styled-components-rtl 。它使用 StylisRTLPlugin,可翻转所有 CSS 样式以适应 RTL 布局:

    // _document.js
    <StyleSheetManager stylisPlugins={[stylisRTLPlugin]}>
      <App {...props} />
    </StyleSheetManager>

它工作正常,但问题是我无法根据当前的 locale 有条件地删除 stylisRTLPlugin 因为我无法访问 useRouter() _document.js 中。

我想要做的事情:

    <StyleSheetManager stylisPlugins={locale === 'ar' ? [stylisRTLPlugin] : null}>
      <App {...props} />
    </StyleSheetManager>

最佳答案

将此配置添加到您的 .babelrc 以强制您的样式在服务器上呈现。

  "plugins": [
    [
      "styled-components",
      {
        "ssr": true,
      }
    ]
  ]

关于next.js - 使用样式组件在 LTR 和 RTL 之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67145584/

相关文章:

node.js - 无法在 nextjs 的 getServerSideProps 中访问 session 或 req.user

javascript - WebStorm 不建议/自动完成样式组件的代码

javascript - 媒体查询不适用于样式化组件

css - 媒体查询没有正确触发值?

docker - Next.js 获取在 Docker 中出现 ECONNREFUSED 错误(Strapi 作为后端)

node.js - 在 React 组件的 setState 中使用 Math.random 时组件渲染不正确

javascript - VSCODE 无法识别标记海豚的 .env* 文件且无法识别 .env.local.* 文件

sass - NextJS 和 Bulma SASS 不更新变量

css - 在 React 中使用 styled-components 添加到可折叠 div 的过渡

javascript - 将 props 从 react-cosmos 传递到 styled-components