如何通过contextType而不是消费者通过React上下文注入Apollo客户端?

时间:2019-06-15 03:51:15

标签: reactjs apollo react-apollo

我正在寻找将contextType注入到React组件的apollo client方法。我知道下面的代码可以用,但是需要几行代码。

import { ApolloConsumer } from "react-apollo";

const WithApolloClient = () => (
  <ApolloConsumer>
    {client => "We have access to the client!" /* do stuff here */}
  </ApolloConsumer>
);

反应doc(https://reactjs.org/docs/context.html#dynamic-context)引入者是一种无需使用consumer即可插入上下文的新方法。这是通过为组件类设置contextType来完成的。我想知道如何使用contextType注入apollo client吗?我应该使用什么contextType

1 个答案:

答案 0 :(得分:3)

好吧,我发现可以从ApolloContext导入react-apollo来解决它,如下所示:

import { ApolloContext } from 'react-apollo';

const HomeContainer = (props: HomeProps) => {
  const context = useContext(ApolloContext);
  return <Home {...props} />;
}