Fix: "Part 6d" - query key type mismatch in newNoteMutation cache update #4171
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The
newNoteMutation'sonSuccesshandler uses string format for query keys ('notes'), but theuseQueryhook uses array format (['notes']). In TanStack Query v4+, these are treated as completely different cache entries, causing the UI to not update after adding a new note.Changes
queryClient.getQueryData('notes')→queryClient.getQueryData(['notes'])queryClient.setQueryData('notes', ...)→queryClient.setQueryData(['notes'], ...)Result
The mutation now correctly updates the same cache entry that
useQueryis watching, enabling instant UI updates without triggering an extra GET request (as intended by the optimization in Part 6d).Related
This fixes a bug in the course material implementation from 'Part 6d: React Query, useReducer and the context', "Optimizing the performance" section.