【问题标题】:React Bundle giving error: "Type Error: cannot read property 'ReactCurrentOwner' of undefined"React Bundle 给出错误:“类型错误:无法读取未定义的属性 'ReactCurrentOwner'”
【发布时间】:2019-02-28 05:14:30
【问题描述】:

对于我的应用程序的部署版本,我已将以下代码添加到我的 Webpack 配置中,以从我提供的供应商包中获取 React:

externals: {
   react: 'vendor.React',
   'react-dom': 'vendor.ReactDOM',
},

这通常有效,但由于某种原因现在我收到错误:

Type Error: cannot read property 'ReactCurrentOwner' of undefined

有谁知道这个错误是什么或者为什么我的缩小反应包会抛出这个错误?

反应版本 16.5.2

【问题讨论】:

  • 嗯,试试检查更新? github.com/chenglou/react-motion/issues/447npm i -g npm-check-updatesnpm-check-updates -unpm install我知道这不是你使用的包,但值得一试?
  • 我已经尝试过了,修改了我的 package.json 并删除了包锁。没有运气。如果有任何帮助,我会将两个不同的版本捆绑在一个单独的微服务中,然后我从中提供捆绑包。
  • 嗯,请耐心等待(我正在研究这个问题)......我认为问题是你必须指定一个 react 和 react-dom 版本......而你将该版本放在 package.json 指定您的版本的位置,即 16.5.2 或者您可以使用特定的内容,例如 github.com/apollographql/react-apollo/issues/…
  • @Demon 感谢您的帮助。我正在使用我在本地文件系统上下载的 React 的 CDN 版本,因为我试图从这个微服务中提供两个不同版本的 React。原来 CDN 版本或 React-Dom 有 require 语句: require("react");那些要求正在解析为我的 node_modules 具有较低版本的反应。修复方法是手动编辑它们以指向我下载的 React 的本地文件系统版本。

标签: reactjs webpack vendor


【解决方案1】:

感谢@Demon 试图提供帮助。最终解决方案如下:

我使用的是 CDN 版本的 React,它是我在本地文件系统上下载的,因为我试图从这个微服务中提供两个不同版本的 React。原来 CDN 版本或 React-Dom 有 require 语句:

var react = require("react");

那些 require 正在解析为我的 node_modules,它的 react 版本较低。修复方法是手动编辑它们以指向我下载的 React 的本地文件系统版本。

var react = require("./react.development.js")

【讨论】:

  • 太棒了!很高兴我能提供一些帮助!
猜你喜欢
  • 2018-12-31
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
相关资源
最近更新 更多