React hooks in react library giving Invalid hook call error

后端 未结 6 1488
灰色年华
灰色年华 2021-02-12 13:17

I create a react library using https://www.npmjs.com/package/create-react-library And successfully used it on other React project. But when I tried to use react hooks functiona

6条回答
  •  说谎
    说谎 (楼主)
    2021-02-12 13:31

    I was including my component library (for that matter any library) in my application as @Janith did using my-comp-lib:"file:../.." (I don't want to publish every time I want to test) and I encountered the same issue.

    Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:

    1. You might have mismatching versions of React and the renderer (such as React DOM)
    2. You might be breaking the Rules of Hooks
    3. You might have more than one copy of React in the same app See react-invalid-hook-call for tips about how to debug and

    fix this problem

    I was able to fix this by making my app and library point to the same react (package) location.

    Below are the steps I followed :
    1. In Your Application:
    a) cd node_modules/react && npm link
    b) cd node_modules/react-dom && npm link
    
    2. In Your Library
    a) npm link react
    b) npm link react-dom
    
    3)Stop your dev-server and do `npm start` again.
    

    It works!!

    Please refer below links for more details ..

    https://github.com/facebook/react/issues/14721

    https://github.com/facebook/react/pull/14690

    https://github.com/facebook/react/issues/13991

    Note : This issue will not happen if you publish your package to artifactory and install because you will have react & react-dom as peer-dependencies and they won't get included in the distribution. So your package and application use the same react which is installed in the application.

提交回复
热议问题