我有一个使用 React 应用程序react-apollo:2.5.8
以及我通过 NPM 安装并在应用程序中使用的自定义组件库。图书馆有react-apollo:2.5.8
列在对等和开发依赖项中。自从我将 React-apollo 升级到 2.5.8 以来,我一直收到此错误
`Uncaught Invariant Violation: Could not find "client" in the context of ApolloConsumer. Wrap the root component in an <ApolloProvider>.`
我尝试在其中列出 React-apolloexternals
也在该库的 Webpack 构建中。这样,在应用程序内仅使用一次安装。但没有运气。每次我尝试导入组件时,我都会收到此错误。应用程序内的组件能够成功查询,这是库组件引发此错误。
关于如何解决这个问题有什么建议吗?我不想升级到 ^3.0.0,因为存在重大更改并且会涉及大量重构。我也在服务器端渲染应用程序,在这种情况下它工作得很好,并且我没有收到此错误。当我尝试运行仅客户端版本时,会出现此错误。
更新:我可以看到库组件似乎仍然在使用其node_modules 文件夹中自己的react-apollo。模块格式为ejs
,而在应用程序中,模块格式是主要选项cjs
。这可能是导致错误的原因。我将看看是否可以阻止库组件使用自己的组件react-apollo
包裹。
所以我通过创建一个符号链接来解决这个问题react-apollo
从我的库组件文件夹中将其打包到我的应用程序中。由于这主要是对开发环境的要求,因此这似乎可以解决问题。不是最好的解决方案,但目前有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)