react多个实例错误解决方案总结

 浆糊之家   2021-04-03 11:11   5 views 热度值

在使用react hook时,相信不少人会碰到报如下错误的:

引起此错误的是会有很多场景,抛开前二点因素因为也比较容易解决,而此次总结出现比较频率及比较难解决的第三点,不允许react有多个实例情况。

这种情况会在什么时候下复现呢?

1、制作react hook组件sdk时,使用npm link软链接插件

2、第三方插件dependencies依赖内还存在react版本,并且与主项目react版本不一致

解决方案总结

npm link软链接解决方案

注意:sdk插件和调试的项目,二者之间必须是同父级主目录,

file

  1. 进入react hook组件的sdk项目,在终端输入npm link,常规软链接操作
  2. 把sdk插件项目内的react进行软链接,就是把sdk内的react指向调试项目内的node_modules/react包。

案例示例:

  1. 进入调试项目内,进行软链接本地包npm link vgeform,此时就可以正常使用了。

PS:第二步操作一定要指向你调试项目内的react包,如果像上面你指向fig-spa的react版本后,你却去其它项目软链接vgeform那是没有用的!!一定要流程流程细节。

第三方插件dependencies版本不一致

像第三方插件或是自己内部插件的sdk插件导致版本不一致情况,如果不能改动插件内部的话,可以通过以下方式强制react统一。

  1. 进行项目内,修改package.json文件,添加resolutions参数,强制所有包都指定一个react版本,

  1. 删除项目内本地 lock文件,以及node_modules文件夹

  2. 在项目内使用yarn安装包,因为在package.json文件中,resolutions 这个参数只有yarn才支持,npm安装是不生效的

PS:此方式不支持npm link软链接的哦,是会报错的,所以如果你是本地软链接react hook组件的话,还是用npm link的解决方案。

NEXT:已经是最新一篇了

 发表评论


表情