javascript - Ant Design SSR 不匹配问题,服务端呈现中文,客户端呈现英文

标签 javascript reactjs antd

我将 Ant Design 添加到了我的 React/Redux SSR 就绪应用程序中。正如文档中所述,我使用了 Ant Design 的 Locale Provider 组件。但有两个主要问题。

  1. 在网络控制台中,它显示;组件在服务器端呈现中文,但在客户端呈现英文。所以SSR不兼容。我尝试了一些网络配置,但没有解决问题。
  2. 它说;您使用的是antd整包,请使用https://www.npmjs.com/package/babel-plugin-import减少应用程序包的大小。我使用了 babel-plugin-import 插件,但没有改变任何东西。

任何建议我都会感激不尽。

最佳答案

首先,您必须使用 ant design “LocaleProvider” 组件,如文档中所述。

import { LocaleProvider } from 'antd';
import enUS from 'antd/lib/locale-provider/en_US';

return <LocaleProvider locale={enUS}><App /></LocaleProvider>;

然后要支持服务器端渲染,您必须对 server.js 文件使用相同的模式

const { LocaleProvider } = require('antd')
const enUS = require('antd/lib/locale-provider/en_US')

const body = ReactDOMServer.renderToString(
React.createElement(
  LocaleProvider,
  { locale: enUS },
  React.createElement(
    Provider,
    { store },
    React.createElement(
      StaticRouter,
      { location: req.url, context: context },
        React.createElement(Layout, null, React.createElement(Routes))
      )
    )
  )
)

关于javascript - Ant Design SSR 不匹配问题,服务端呈现中文,客户端呈现英文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45907364/

相关文章:

javascript - React - 包装父组件和直接子组件

javascript - 如何检查 html 元素是否包含它自己的文本(包含 textNode)

javascript - 更改kendo grid数据源使用JS

javascript - 来自 jquery jtable 的 ajax 调用的错误处理

javascript - 使用 jquery 为 div 设置动画时,CSS z-index 不起作用?

reactjs - 如何使用 cypress-react-unit-test 测试受控的 React 组件

javascript - React Apollo Hooks - 链突变

javascript - 为什么页面只用 React Router 加载?

reactjs - 有没有办法在提交时规范化 Ant 设计输入的值?

javascript - antd - 具有分页控件的 ant 设计表支持小部件来选择每页的行?