我有一个使用react-apollo:2.5.8
的React应用程序,以及一个我通过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>.`
我也尝试在该库的Webpack构建的externals
中列出React-apollo。这样,在App中仅使用一个安装。但是没有运气。每次尝试导入组件时,都会不断出现此错误。应用程序中的组件能够成功查询,是库组件引发此错误。
关于如何解决此问题的任何建议?我不想升级到^ 3.0.0,因为存在重大更改,并且会涉及很多重构。我也在服务器端渲染该应用程序,在这种情况下,它运行正常,并且没有出现此错误。这是我尝试运行仅客户端版本时出现的错误。
更新:我可以看到库组件似乎仍在从node_modules文件夹使用其自己的react-apollo。模块格式为ejs
,而在应用程序中,模块格式为主要选项cjs
。这可能是导致错误的原因。我将看看是否可以阻止库组件使用其自己的react-apollo
包。
答案 0 :(得分:0)
因此,我通过从库组件文件夹中创建指向应用程序内react-apollo
包的符号链接来解决此问题。由于这主要是开发环境的要求,因此似乎可以解决此问题。不是最好的解决方案,但目前可以使用。