当我尝试从反应查询中析构数据时,我得到属性"数据"在类型"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:布尔
  • 返回错误:布尔
  • isLoadingError:布尔
  • isRefetchError:布尔
  • :TData,默认为undefined
  • dataUpdatedAt:数量
  • error: null | TError
  • errorUpdatedAt:数量
  • isStale:布尔
  • isPlaceholderData:布尔
  • isPreviousData:布尔
  • isFetched:布尔
  • isFetchedAfterMount:布尔
  • isFetching:布尔
  • isRefetching:布尔
  • failureCount:数量
  • errorUpdateCount:数量
  • refetch:(options: {throwOnError: boolean, cancelRefetch: boolean}) =>承诺
  • remove: () =>空白

试着像这样在循环中销毁数据:

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]

尝试删除参数"data">