useQuery is not refreshing data after setQueryData
Hello, why below snippet does not refresh useQuery which has queryKey equal to QueryKey.MyItems?
As I log data from getQueryData, I see it's updated.
As I log data from getQueryData, I see it's updated.
const { mutate: removeItem, isLoading } = useMutation(
[QueryKey.RemoveFromMyLibrary],
removeItemFromLibrary,
{
onSuccess: itemId => {
const previousData = queryClient.getQueryData([QueryKey.MyItems]) as GetItemsResponse
queryClient.setQueryData(..., {...data, count: data.count - 1, items: items.filter(...)})
const newData = previousData
console.log(newData, 'newData')
newData.total -= 1
const itemIndex = newData.items.findIndex(item => item.id === itemId)
newData.items.splice(itemIndex, 1)
queryClient.setQueryData([QueryKey.MyItems], newData)
const updatedData = queryClient.getQueryData([QueryKey.MyItems])
console.log(updatedData, 'updatedData')
}
}
) const { mutate: removeItem, isLoading } = useMutation(
[QueryKey.RemoveFromMyLibrary],
removeItemFromLibrary,
{
onSuccess: itemId => {
const previousData = queryClient.getQueryData([QueryKey.MyItems]) as GetItemsResponse
queryClient.setQueryData(..., {...data, count: data.count - 1, items: items.filter(...)})
const newData = previousData
console.log(newData, 'newData')
newData.total -= 1
const itemIndex = newData.items.findIndex(item => item.id === itemId)
newData.items.splice(itemIndex, 1)
queryClient.setQueryData([QueryKey.MyItems], newData)
const updatedData = queryClient.getQueryData([QueryKey.MyItems])
console.log(updatedData, 'updatedData')
}
}
)