【发布时间】:2022-10-17 17:47:45
【问题描述】:
我建立 :
- 一个可重用的反应组件包,和
- 用于测试组件的反应应用程序
它们都在一个monorepo(lerna)内。 问题是组件和应用程序的“反应”包被指向“不同的东西”,因此在组件内使用钩子会触发此错误: “只能在函数组件的主体内部调用挂钩”。
删除第二个“react”包目录会影响组件项目,因为它是一个符号链接(类似于组件项目的快捷方式)。 有什么办法可以解决我的问题吗?
【问题讨论】:
-
如果你正在使用 webpack,你可以为
react和react-dom在my-react-app中创建一个alias,它指向<path-to-my-react-app/node_modules/react和类似的react-dom。 -
我正在使用反应脚本并且不会弹出它。
-
然后试试这个文档底部的内容:reactjs.org/warnings/invalid-hook-call-warning.html。将你的库中的反应链接到你的应用程序中的反应。
标签: reactjs npm monorepo lerna npm-package