Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 我的应用程序中有多份React_Reactjs - Fatal编程技术网

Reactjs 我的应用程序中有多份React

Reactjs 我的应用程序中有多份React,reactjs,Reactjs,我使用的是react treelist组件,在该组件中,我使用office ui fabric callout(类似于工具提示)组件在树状结构中的元素上具有工具提示。当我运行此程序时,它会正确运行,但当我将项目中的捆绑文件捆绑并作为模块使用时,它会给出错误:- Layer.componentDidUpdate()中出现异常:不变冲突:addComponentAsRefTo(…):只有ReactOwner可以有引用。您可能正在向未在组件的render方法中创建的组件添加引用,或者已加载多个副本 我

我使用的是react treelist组件,在该组件中,我使用office ui fabric callout(类似于工具提示)组件在树状结构中的元素上具有工具提示。当我运行此程序时,它会正确运行,但当我将项目中的捆绑文件捆绑并作为模块使用时,它会给出错误:-

Layer.componentDidUpdate()中出现异常:不变冲突:addComponentAsRefTo(…):只有ReactOwner可以有引用。您可能正在向未在组件的
render
方法中创建的组件添加引用,或者已加载多个副本

我尝试了很多来自diff论坛的解决方案,但都没有成功。我确信问题在于react的多个副本

我所做的细节

我从github克隆了react treelist,然后安装了office ui fabric模块,然后修改了一些代码,使调用组件与react treelist一起工作,我做了npm启动它工作正常我做了npm运行dist并将捆绑包文件复制到名为react treelist的文件夹中的我的项目目录中,然后在我的代码中将该文件作为模块导入,并运行它给我上述错误的代码


是否有人可以建议我如何在我的应用程序中没有多个react副本的情况下完成上述任务

如果您使用webpack构建应用程序,您可以使用来确保所有模块引用相同的
react
库:

  resolve: {
    alias: {
      'react': fs.realpathSync('node_modules/react'),
      'react-dom': fs.realpathSync('node_modules/react-dom')
    }
  }

如果您使用Webpack,则可以通过将以下内容添加到Webpack配置来修复它

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

感谢您的回答,我尝试了您的解决方案,但没有成功。我也尝试了以下解决方案:{extensions:[“”,“.webpack.js”、“.web.js”、“.ts”、“.tsx”、“.js”],别名:{react:path.join(u dirname,'node_modules,'react')。如果您不使用webpack?