如何防止加载多个React副本?

在我以前的Meteor应用程序中,使用browserify和React,所有功能都可以使用,直到我切换到meteor

webpack为止。

我在Meteor应用程序中使用react-select,效果很好,但是使用browserify可以防止加载多个react副本,从而避免出现此错误:

错误:始终违规:addComponentAsRefTo(...):只有ReactOwner可以具有引用。您可能会向未在组件的render方法中创建的组件添加引用,或者您已加载多个React副本(详细信息:https://fb.me/react-refs-must-have-owner) 。

我的package.json看起来像这样:

...

"dependencies": {

"classnames": "^2.1.3",

"lodash": "^3.10.0",

"react": "^0.14.6",

"react-dom": "^0.14.6",

"react-mixin": "^2.0.1",

"react-select": "^1.0.0-beta8"

},

...

Webpack中是否有配置,我可以使用外部调用?尚不完全清楚这意味着什么,但要说一条评论:

externals: {

'react': 'React',

'react-dom': 'ReactDOM'

}

回答:

由于您使用的是webpack,因此可以添加用于加载react的别名,如下所示:

// In webpack.config.js

resolve: {

alias: {

react: path.resolve('node_modules/react'),

},

},

这样可以避免addComponentAsRefTo(...)错误,并使我们的构建再次成功。但是,由于某种原因,测试构建只能在我们的CI环境中失败,因为它无法解析node_modules/react路径。我认为您不太可能会遇到此特定问题。

以上是 如何防止加载多个React副本? 的全部内容, 来源链接: utcz.com/qa/413996.html

回到顶部