我像@Janith那样使用了我的组件库(就此而言,任何库都包括在我的应用程序中)
my-comp-lib:"file:../.."(我不想每次想测试时都发布),并且遇到了相同的问题。
无效的挂接调用。挂钩只能在功能组件的主体内部调用。可能由于以下原因之一而发生:
- 您可能使用了不匹配的React和渲染器版本(例如React DOM)
- 您可能正在违反挂钩规则
- 您可能在同一应用程序中拥有多个React副本。有关如何调试和调试的提示,请参见react-invalid-hook-call。
解决这个问题
我可以通过使我的应用程序和库指向相同的react(包)位置来解决此问题。
Below are the steps I followed :1. In Your Application:a) cd node_modules/react && npm linkb) cd node_modules/react-dom && npm link2. In Your Librarya) npm link reactb) npm link react-dom3)Stop your dev-server and do `npm start` again.
有用!!
请参考以下链接以获取更多详细信息..
https://github.com/facebook/react/issues/14721
https://github.com/facebook/react/pull/14690
https://github.com/facebook/react/issues/13991
注意:如果您将软件包发布到工件上并安装,则不会发生此问题,因为您将具有react&react-
dom作为对等依赖项,并且它们不会包含在分发中。因此,您的程序包和应用程序使用与应用程序中安装的相同的React。



