作为道具传递时,graphql refetch 的类型是啥?

Posted

技术标签:

【中文标题】作为道具传递时,graphql refetch 的类型是啥?【英文标题】:What is type of graphql refetch when passing as props?作为道具传递时,graphql refetch 的类型是什么? 【发布时间】:2022-01-19 06:21:47 【问题描述】:

我将 graphql refetch 作为道具传递给组件,但我不确定应该是什么类型?

const  data, loading, refetch  = useQuery(gqlquery, 
        variables:  where:  id: id  ,
    );

  <myinfo
     loading=loading
     data=data
     refetch=refetch
   />

export const myinfo= (
    refetch,
    loading,
    data,
: myinfoProps) => 


type myinfoProps= 
    refetch?: any;
    loading: boolean;
    data: 
;

我想从 refetch?: any; 中删除any 应该存在的内容而不是。

【问题讨论】:

【参考方案1】:

根据文档,refetch 的类型是:

 type myinfoProps= 
    refetch?: (options:  throwOnError: boolean, cancelRefetch: boolean ) => Promise<UseQueryResult>;
    loading: boolean;
    data: 
;

调用时,您必须检查它是否已定义,因为它是可选属性:

export const myinfo= (
    refetch,
    loading,
    data,
: myinfoProps) => 
  if(refetch)
         refetch(/* parameters */);
    


【讨论】:

所以我在打电话给refetch();时应该这样做 请查看更新后的答案。你传入的参数取决于你想要的配置 写了这个if (refetch)refetch(throwOnError: true,cancelRefetch: false,); refetch?: (options: throwOnError: boolean;cancelRefetch: boolean;) =&gt; Promise&lt;UseQueryResult&gt;;UseQueryResult从查询结果中获取的数据格式。给出`类型' throwOnError: boolean; cancelRefetch:布尔值; ' 与 type 'Partial'.`

以上是关于作为道具传递时,graphql refetch 的类型是啥?的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS/Apollo/Graphql:使用 @skip 阻止 data.refetch 直到单击 onSubmit 但重新获取仍然可用

使用 graphql 将道具传递给高阶组件时出现 React-apollo Typescript 错误

作为道具传递与提取缓存 Apollo 客户端 Nextjs

react-apollo 中的 data.refetch() 函数如何工作

将组件作为道具传递时在 Flow 中键入 React 组件

将 required() 图像作为道具传递时出错