React apollo 如何通过道具而不是上下文为客户提供帮助
我正在逐步将Apollo整合到一个相当重要的React/Redux应用程序中。我现在不想把我的React应用程序包装在React apollo 如何通过道具而不是上下文为客户提供帮助,react-apollo,React Apollo,我正在逐步将Apollo整合到一个相当重要的React/Redux应用程序中。我现在不想把我的React应用程序包装在ApolloProvider中。我想为不同的GraphQL端点支持多个ApolloClient实例,但我不太喜欢嵌套提供程序(我已经使用了Redux的提供程序)。总的来说,我试图“轻松地”加入阿波罗,并在几个特定的地方明确地添加它。这就是我的动机,现在我的问题是: 在我看来,通过props直接向Query组件提供ApolloClient实例是合理的。通过这种方式,我们明确了数据源
ApolloProvider
中。我想为不同的GraphQL端点支持多个ApolloClient
实例,但我不太喜欢嵌套提供程序(我已经使用了Redux的提供程序
)。总的来说,我试图“轻松地”加入阿波罗,并在几个特定的地方明确地添加它。这就是我的动机,现在我的问题是:
在我看来,通过props直接向Query
组件提供ApolloClient
实例是合理的。通过这种方式,我们明确了数据源,可以支持多个客户端。这似乎有效:
const client = new ApolloClient({
uri: "https://w5xlvm3vzz.lp.gql.zone/graphql"
});
...
<Query client={client} variables={...} query={}>
...
</Query>
const客户端=新客户端({
uri:“https://w5xlvm3vzz.lp.gql.zone/graphql"
});
...
...
我对这种方法唯一关心的是控制台中出现错误:
Uncaught Error: Could not find "client" in the context of Query or as passed props. Wrap the root component in an <ApolloProvider>
Uncaught错误:在查询上下文或传递的道具中找不到“客户端”。将根组件包装在
关于避免此错误消息有何想法?我意识到使用ApolloProvider
注入客户机更为典型,但对于我的情况,我更喜欢将其作为道具传递的明确性和灵活性。它似乎在工作,但我想避免控制台错误
谢谢 据我所知,如果你把它作为道具传递,那就不应该发生。您能否验证客户端是否已实际定义?另外,是否存在潜在的
变异
或订阅
组件,您正在使用这些组件,但您没有以类似的方式将客户端传递给它们?