Mutationit useMutationilla
Lähettäkää dataa API-rajapintoihin useMutationilla, käsitelkää lataus- ja virhetilat sekä mitätöikää kyselyt onnistumisen jälkeen.
Mutationit useMutationilla on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.
Tervetuloa
useMutationin perusteet
import { useMutation } from '@tanstack/react-query';
const { mutate, isLoading, isError } = useMutation({
mutationFn: (newPost) => fetch('/api/posts', {
method: 'POST',
body: JSON.stringify(newPost),
}).then(r => r.json()),
});mutate-funktion kutsuminen
<button onClick={() => mutate({ title: 'New Post' })}>
Create Post
</button>Takaisinkutsut: onSuccess, onError, onSettled
useMutation({
mutationFn: createPost,
onSuccess: (data) => {
console.log('Created:', data);
navigate('/posts/' + data.id);
},
onError: (error) => {
toast.error(error.message);
},
})Kyselyjen mitätöinti muutoksen jälkeen
import { useQueryClient } from '@tanstack/react-query';
const queryClient = useQueryClient();
const { mutate } = useMutation({
mutationFn: createPost,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['posts'] });
},
});mutateAsync await-syntaksia varten
const { mutateAsync } = useMutation({ mutationFn: createPost });
async function handleSubmit() {
try {
const post = await mutateAsync({ title: 'Draft' });
navigate('/posts/' + post.id);
} catch (err) {
setError(err.message);
}
}Lähetyksen poistaminen käytöstä muutoksen aikana
const { mutate, isPending } = useMutation({ mutationFn: saveItem });
<button onClick={() => mutate(item)} disabled={isPending}>
{isPending ? 'Saving...' : 'Save'}
</button>Optimistiset päivitykset onMutate-funktiolla
useMutation({
mutationFn: likePost,
onMutate: async (id) => {
await queryClient.cancelQueries({ queryKey: ['posts'] });
const prev = queryClient.getQueryData(['posts']);
queryClient.setQueryData(['posts'], old => old.map(p =>
p.id === id ? { ...p, likes: p.likes + 1 } : p));
return { prev };
},
onError: (err, id, ctx) => queryClient.setQueryData(['posts'], ctx.prev),
onSettled: () => queryClient.invalidateQueries({ queryKey: ['posts'] }),
})Muutoksen tilan nollaaminen
const { mutate, isError, reset } = useMutation({ /* ... */ });
{isError && (
<>
<p>Error!</p>
<button onClick={reset}>Try Again</button>
</>
)}Useita rinnakkaisia muutoksia
await Promise.all([
mutateAsync({ id: 1, title: 'First' }),
mutateAsync({ id: 2, title: 'Second' }),
]);Pikatarkistus
Kertaus
Seuraavaksi
Opi React tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 88
- Oppitunnit
- 324
Usein kysytyt kysymykset
Onko oppitunti ”Mutationit useMutationilla” ilmainen?
Kyllä – oppitunnin ”Mutationit useMutationilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Mutationit useMutationilla”?
Lähettäkää dataa API-rajapintoihin useMutationilla, käsitelkää lataus- ja virhetilat sekä mitätöikää kyselyt onnistumisen jälkeen. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Mutationit useMutationilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?
Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- React Queryn ja QueryClientin käyttöönotto
- Välimuisti, stale time ja taustalataus
- Mutationit useMutationilla
- Infinite scroll ja sivutus useInfiniteQuerylla