当我试图像这样破坏数据时,我面临着反应查询问题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">