问题标签 [babel-plugin-react-intl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
next.js - react-intl 与服务器端渲染
问题
Next js SSR 环境无法检测“gr”和“rs”或“es”等某些语言的语言环境。我正在使用 react-intl https://github.com/formatjs/formatjs
这导致我的浏览器在页面加载时显示此错误。
忽略错误
我设法通过设置默认语言环境并像这样处理 onError 来抑制错误
然而,这并不是一个真正的修复,因为现在服务器端渲染将不同于实际请求的页面(它被烘焙到 url 中)。http://localhost/rs/page
库中失败的行
特别是在 SSR 库中失败的行是这一行,因为语言环境返回一个空数组。
水合错误
此外,如果我使用上面的 onError 技巧,我自然会收到 SSR 水合物错误,因为它在服务器上以不同的语言呈现
如何让 nextjs ssr 了解语言环境?
internationalization - react-intl:使用 .js 文件而不是 .json 文件进行消息存储
我正在使用没有 JSON 消息文件的 react-intl。相反,我只使用 .js 文件。我用<FormattedMessage id="" /> and <FormattedDate value={} />
. 它可以正常工作。但是,react-intl 文档说使用 JSON 文件作为消息。
我想确定我是否在做正确的事情。没有 babel 配置,没有设置 package.json 文件或没有消息提取,到目前为止我没有收到任何错误。
我在下面做的事情正确吗?为什么他们建议使用 JSON 格式和 babel 配置?谢谢。
我的文件夹结构是:
我的 message.js 文件是这样的,所有消息都存储在一个文件中:
locales.js 文件:
在 APP.js 中,我包装了所有路由:
我使用 redux 来更改语言: