繁体   English   中英

当我尝试从反应查询中破坏数据时,我得到属性“数据”在“无效”类型上不存在

[英]when I try to destructing the data from react query I am getting Property 'data' does not exist on type 'void'

当我尝试像这样破坏数据时,我遇到了反应查询的问题const {data: getAllChannelSettingTypes} = useGetAllChannelSettingTypes(); 我收到此错误Property 'data' does not exist on type 'void'

返回 userQueries 可能有问题

const useGetAllChannelSettingTypes = () => {
  const {data: defaultSettingTypes} = useQuery(SETTING_TYPES, () =>
    Api.user.getSettingTypes(),
  );
  const userQueries = useQueries(
    defaultSettingTypes.map((type: any) => {
      return {
        queryKey: ['SETTING_VALUE', type.channelSettingTypeId],
        queryFn: () => Api.user.getSettingValues(type.channelSettingTypeId),
      };
    }),
  );
  console.log(userQueries);
  return userQueries;
};

根据文档useQueries 返回一个数组:

useQueries 挂钩返回一个包含所有查询结果的数组。

数组中的每个元素都具有以下属性:

  • 状态:字符串
  • isIdle:布尔值
  • isLoading:布尔值
  • isSuccess:布尔值
  • isError:布尔值
  • isLoadingError: 布尔值
  • isRefetchError: 布尔值
  • dataTData,默认为 undefined
  • dataUpdatedAt:数字
  • 错误:空| 恐怖
  • 错误更新时间:数字
  • isStale:布尔值
  • isPlaceholderData:布尔值
  • isPreviousData:布尔值
  • isFetched:布尔值
  • isFetchedAfterMount:布尔值
  • isFetching:布尔值
  • isRefetching:布尔值
  • 失败计数:数字
  • 错误更新计数:数字
  • refetch: (options: { throwOnError: boolean, cancelRefetch: boolean }) => Promise
  • 删除:() => 无效

所以尝试像这样在循环中破坏数据:

 for(let i = 0; i < userQueries.length; i++){ const {data: getAllChannelSettingTypes} = useGetAllChannelSettingTypes() // do something with that data of the given query }

如果您只对第一个结果感兴趣,您可以这样做:

 const {data: getAllChannelSettingTypes} = useGetAllChannelSettingTypes()[0]

尝试删除参数“数据”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM