React Native 多个版本的 React(使用钩子时)



我已经了解了臭名昭著的无效钩子调用警告的 3 个主要原因,并确定我的应用程序中有多个版本的 React。我已经通过此步骤确认了这一点:

// Add this in node_modules/react-dom/index.js
window.React1 = require('react');
// Add this in your component file
require('react-dom');
window.React2 = require('react');
console.log(window.React1 === window.React2);

根据我的研究,我知道可能是我拥有的依赖项将react列为依赖项而不是对等依赖项,并且有几种方法可以解决此问题。但是,我不知道如何找出导致问题的软件包。

网上有很多与 react 相关的解决方案(例如添加 webpack 别名(,但不幸的是,它们不适用于 react-native。我(也许天真地(试图在babel.config.js中添加一个带有module-resolver的别名,但这不起作用:

plugins: [
[
'module-resolver',
{
alias: path.resolve('node_modules/react'),
},
],
]

过了好一会儿才想通。问题是将react-dom库列为依赖项。我在某处读过这样做以支持开玩笑测试,但我想这个建议已经过时了。

尽管如此,这个错误是一个明显的红鲱鱼,所以希望这可以在未来帮助某人

相关内容

  • 没有找到相关文章

最新更新