Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React apollo 如何通过道具而不是上下文为客户提供帮助_React Apollo - Fatal编程技术网

React apollo 如何通过道具而不是上下文为客户提供帮助

React apollo 如何通过道具而不是上下文为客户提供帮助,react-apollo,React Apollo,我正在逐步将Apollo整合到一个相当重要的React/Redux应用程序中。我现在不想把我的React应用程序包装在ApolloProvider中。我想为不同的GraphQL端点支持多个ApolloClient实例,但我不太喜欢嵌套提供程序(我已经使用了Redux的提供程序)。总的来说,我试图“轻松地”加入阿波罗,并在几个特定的地方明确地添加它。这就是我的动机,现在我的问题是: 在我看来,通过props直接向Query组件提供ApolloClient实例是合理的。通过这种方式,我们明确了数据源

我正在逐步将Apollo整合到一个相当重要的React/Redux应用程序中。我现在不想把我的React应用程序包装在
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
注入客户机更为典型,但对于我的情况,我更喜欢将其作为道具传递的明确性和灵活性。它似乎在工作,但我想避免控制台错误


谢谢

据我所知,如果你把它作为道具传递,那就不应该发生。您能否验证客户端是否已实际定义?另外,是否存在潜在的
变异
订阅
组件,您正在使用这些组件,但您没有以类似的方式将客户端传递给它们?