如何防止加载多个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