首页 > 解决方案 > 使用 react-intl v2 加载包时出现 React-intl v5 错误

问题描述

我有一个带有 的 React 应用程序react-intl v2,我想将它迁移到v5. 在我们的node_modules文件夹中,我们有一个包含react-intl v2.

我升级了 React App 以使用react-intl v5它,它工作正常(整个 App 用 包裹IntlProvider)。问题是何时使用此依赖包。我得到一个:

Uncaught Invariant Violation: [React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry.
    at invariant (webpack-internal:///./node_modules/invariant/browser.js:40:15)
    at invariantIntlContext (webpack-internal:///./node_modules/some-library/dependency-package/node_modules/react-intl/lib/index.es.js:731:52)
    at new InjectIntl(DateTimeFormat) (webpack-internal:///./node_modules/some-library/dependency-packageg/node_modules/react-intl/lib/index.es.js:813:7)

我像往常一样使用import. 我webpack用于捆绑。既然是外部包,就应该在渲染前编译,也就是说,依赖包版本低也无所谓吧?我应该只获取 HTML,而我的 React App 只是呈现它。

标签: reactjswebpackreact-intl

解决方案


在 webpack 中,您应该强制将 react-intl 解析为 v5


推荐阅读