【问题标题】:bundling apollo useQuery hook with rollup将 apollo useQuery 钩子与汇总捆绑在一起
【发布时间】:2020-05-02 12:51:54
【问题描述】:

我正在尝试创建一个使用 useQuery 导出功能的包

但是我得到以下错误:

Could not find "client" in the context or passed in as an option. Wrap the root component in an <ApolloProvider>, or pass an ApolloClient instance in via options.

这甚至是最简单的示例,它只导出 useQuery(obvs 实际代码不止于此)

我知道我的代码没问题,否则就像我使用导入 useQuery 一样

import { useQuery } from '@apollo/react-hooks'

效果很好

简单的例子在这里..

https://github.com/gilesbradshaw/use-query

【问题讨论】:

    标签: react-apollo rollupjs react-apollo-hooks


    【解决方案1】:

    使用的钩子和 ApolloProvider 应该来自同一个模块,否则钩子使用的上下文将与 ApolloProvider 提供的上下文不同。除了钩子之外,您还应该在包中导出 ApolloProvider,然后确保在使用钩子的任何位置从包中导入它。

    【讨论】:

    • 谢谢@daniel - 我实际上试图在真正的应用程序中做相反的事情,即拥有阿波罗提供者和钩子作为对等依赖项。但是你给我指明了正确的方向。我发现,通过删除 resolve 和 commonjs 插件,我可以在开发依赖项中拥有依赖项,但在开发期间仍然是对等依赖项 - 主应用程序中的模块由包使用,请参见此处github.com/gilesbradshaw/use-query/pull/1
    • ps 实际上并不像我想象的那样 - 如果它们存在,主应用程序仍然使用包节点模块。所以我必须删除开发的才能使用它..
    猜你喜欢
    • 2020-02-20
    • 2021-10-22
    • 2018-12-19
    • 2020-11-15
    • 1970-01-01
    • 2020-10-30
    • 2020-10-19
    • 2021-03-02
    • 2021-05-31
    相关资源
    最近更新 更多