使用compose反应Apollo打字稿查询和变异

时间:2019-07-23 02:52:21

标签: reactjs typescript graphql apollo graphql-mutation

我使用graphql函数HOC进行了组合查询和变异,我试图弄清楚如何键入变异以及mutate函数应具有的类型。 React Apollo文档中的所有示例都是特定于查询的。我的代码如下。我在确定any组件props定义中要替换为List的内容时特别麻烦。

type ChildQueryProps = ChildDataProps<
  GetPersonQueryInputProps,
  API.GetPersonQuery,
  API.GetPersonQueryVariables
>;

type ChildMutationProps = ChildDataProps<
  API.UpdatePersonInput,
  API.GetPersonQuery,
  API.GetPersonQueryVariables
>;

const List = ({ data: { loading, getPerson, error }, mutate }: any) => {
// do cool stuff here
};

export default compose(
  graphql<
    {}, 
    API.GetPersonQuery, 
    API.GetPersonQueryVariables, 
    ChildQueryProps
   >(gql(queries.getPerson),
     {
       options: props => ({
         variables: {
           id: props.id
         },
         fetchPolicy: 'network-only'
       })
     }
  ),
  graphql<
    API.UpdatePersonInput,
    API.UpdatePersonMutation,
    API.UpdatePersonMutationVariables,
    ChildMutationProps
  >(gql(mutations.updatePerson))
)(List);

0 个答案:

没有答案