最近在写一个react组件的时候,遇到了这个问题,因为这个组件是想作为npm包使用,然后在组件里面使用了useEffect,这个组件本身的package.json里安装了react和react-dom作为devDependencies,另外建了测试工程,测试工程里单独装了react和react-dom,用npm link的方式来测试这个组件,然后就遇到这个报错
1. You might have mismatching versions of React and the renderer
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
第一个通过检查yarn.lock很好排除,第二个感觉自己也没有写什么判断循环什么的,所以就怀疑是第三个,找了半天,发现官方文档里写的明明白白的
甚至还提示了出现这种问题的场景,简直一模一样
我试了一下把测试工程的react和react-dom依赖去掉,放到组件的目录下,使用组件的react和react-dom,就不报错了