获取rtk查询时屏幕不重新呈现



我是RTK查询新手。我正在实现拉刷新,其中我试图在拉刷新上再次调用GET API。API结果被成功记录,但它没有刷新屏幕或返回更新的响应。我的用法如下:

const [isRefreshing, setIsRefreshing] = useState(false)
const [
getListing,
{ data, isLoading, isError, error },
] = useLazyListingQuery()
useEffect(() => {
getListing('1')
}, [])
const fetchList = () => {
setIsRefreshing(true)
getListing('1')
}

及以下是flatlist组件

<FlatList
data={data}
showsVerticalScrollIndicator={false}
onStartShouldSetResponder={() => true}
renderItem={renderItem}
keyExtractor={useCallback((item, index: number) => 'key' + index, [])}
removeClippedSubviews
maxToRenderPerBatch={5}
windowSize={8}
ItemSeparatorComponent={renderSeparator}
ListHeaderComponent={renderSeparator}
ListFooterComponent={renderSeparator}
onRefresh={fetchList}
refreshing={isRefreshing}
/>

任何形式的帮助将不胜感激。谢谢你。

普通的查询钩子怎么样?

const { data, isLoading, isFetching, isError, error, refetch} = useListingQuery()
<FlatList
data={data}
// ...
onRefresh={refetch}
refreshing={isFetching}
/>

最新更新