gpt4 book ai didi

reactjs - react 钩子(Hook)重复 react 包

转载 作者:行者123 更新时间:2023-12-04 04:23:34 24 4
gpt4 key购买 nike

如所述here , 在 react 库中使用 hooks 时,你经常会遇到一个 react 错误说 hooks can only be called inside the body of a function component这个错误最可能的原因是你的库链接到它自己的 react 包和你的主应用程序,所以你最终使用了 react 包的 2 个不同副本。

此错误的一个典型解决方案是确保您的主应用程序和您的库使用完全相同的 react 包。

我使用的解决方案是:

  • cd到myMainApp/node_modules/react
  • yarn link
  • cd到myLib
  • yarn link react

  • 此解决方案有效。我的主应用程序和我的库现在使用相同的 react 包。

    但是,如果我有多个主要应用程序怎么办?假设我有这个项目结构:

    mainApp1 使用 lib1-1 和 lib1-2

    mainApp2 使用 lib2-1 和 lib2-2

    两个主要应用程序相互独立。所以 lib1-1 和 lib1-2 应该链接到 mainApp1 的 react 包,而 lib2-1 和 lib2-2 应该都链接到 mainApp2 的 react 包

    我怎么做?当我尝试运行 yarn linkmainApp2/node_modules/react , yarn 告诉我已经有一个 react 的链接。

    不幸的是,我不能使用 yarn link as react2或类似的东西。

    关于如何克服这个问题的任何想法?

    注意:这个问题可以通过构建你的库(其中 react 是一个 devDependency)、在每次调整后提交你的更改到 git 以及在你的主应用程序中升级库来解决。但是当然,这不是一个解决方案,因为在开发过程中,您希望链接到您的库而不是从 repo 重新导入它们

    最佳答案

    您可以全局安装 react 和 react-dom,然后将所有项目链接到全局实例。

    该过程将类似于您已经使用的过程,但会创建指向全局位置的符号链接(symbolic link):

    yarn global add react
    yarn global add react-dom

    然后,您可以从您的个人项目链接到它们。

    关于reactjs - react 钩子(Hook)重复 react 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58481465/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com