美文网首页
使用antd中的组件时报错

使用antd中的组件时报错

作者: 追风的云月 | 来源:发表于2017-11-06 21:13 被阅读0次

新建一个项目,并且在项目中使用antd前端框架的Menu组件时报错,具体错误信息如下图:


image.png

代码如图:


image.png
NPM的报错信息:
image.png
you have multiple copies of React loaded(你有多个副本的反应加载)

分析一波,这个报错简单来说是引入了两个react,可能的情况如下
1.peerDependencies配置错误,导致版本重复 通常是在插件(modules)开发的场景下,你的插件需要某些依赖的支持,但是你又没必要去安装, 因为插件的宿主会去安装这些依赖,你就可以用peerDependencies去声明一下需要依赖的插件和版本, 如果出问题npm就会有警告来提醒使用者去解决版本冲突问题。
so,简单的来说:就是插件所使用的依赖包不会直接安装,而会直接使用宿主的依赖包

"peerDependencies": {
    "react": "^0.14.0 || ^15.0.0-rc",
    "react-dom": "^0.14.0 || ^15.0.0-rc"
  }

2.插件开发,使用webpack打包,然后通过 HTML script 引入了react.js 和 react-dom.js 和 插件(例如这里的dist/CFRichEditor.js) , 这时候webpack就应该把react,react-dom排除在打包之外。否则会重复 webpack配置:

externals: {
    "react": 'React', // 这时候,webpack会创建一个全局变量 React 替代react模块,而不去打包react.js。
    'react-dom': 'ReactDOM' // 同理
}

解决办法:

是因为我之前在项目中安装了其它版本的react包,而antd组件自动引入了自身所需要的react包,这样导致不同版本的两个react运行

相关文章

网友评论

      本文标题:使用antd中的组件时报错

      本文链接:https://www.haomeiwen.com/subject/zgdrmxtx.html