美文网首页
使用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