πΒ Reference
πΒ Chapter
β£
const {
data,
error,
isError,
isIdle,
isLoading,
isPaused,
isSuccess,
failureCount,
failureReason,
mutate,
mutateAsync,
reset,
status,
} = useMutation({
mutationFn,
gcTime,
mutationKey,
networkMode,
onError,
onMutate,
onSettled,
onSuccess,
retry,
retryDelay,
useErrorBoundary,
meta
})
mutate(variables, {
onError,
onSettled,
onSuccess,
})
useMutationμ μ¬μ©νλ€.useMutationμ μλ²μ λ°μ΄ν°λ₯Ό μμ±, μμ , μμ (Create, Update, Delete)ν λ μ¬μ©νλ Hookμ΄λ€.mutationFn)λ₯Ό μ μνλ κ²μ΄λ€.const mutation = useMutation({
mutationFn: (newTodo) => {
return axios.post('/todos', newTodo);
},
onSuccess: () => {
// μ±κ³΅ μ λ‘μ§ (μ: μΊμ 무ν¨ν)
console.log('λ°μ΄ν° μ μ₯ μ±κ³΅!');
},
onError: (error) => {
// μλ¬ λ°μ μ λ‘μ§
console.log('μλ¬ λ°μ:', error.message);
},
});
// μ€μ μ¬μ© μ
const handleSubmit = () => {
mutation.mutate({ id: 1, title: 'TanStack Query 곡λΆνκΈ°' });
};
useMutationμ΄ λ°ννλ κ°μ²΄μλ νμ¬ μμ
μ μ§ν μν©μ μ μ μλ μ μ©ν κ°λ€μ΄ λ€μ΄μλ€.
mutate: λ³μ΄ ν¨μλ₯Ό μ€ννλ ν¨μμ΄λ€. ν΄λ¦ μ΄λ²€νΈ λ±μμ νΈμΆνλ€.isPending (ꡬ isLoading): νμ¬ λ€νΈμν¬ μμ²μ΄ μ§ν μ€μΈμ§ μ¬λΆλ₯Ό μλ €μ€λ€. (λ²νΌ λΉνμ±ν λ±μ νμ©)isSuccess: μμ²μ΄ μ±κ³΅μ μΌλ‘ μλ£λμμ λ trueκ° λλ€.isError: μμ² μ€ μλ¬κ° λ°μνμ λ trueκ° λλ€.data: μλ²μμ λ°νν μλ΅ λ°μ΄ν°κ° λ΄κΈ΄λ€.