Gestion des Données Asynchrones dans l'Application
Glissez pour afficher le menu
Vous allez maintenant ajouter des données provenant de l'extérieur de l'application. Au lieu de commencer avec une liste vide, vous allez charger les tâches depuis une API.
Création de l'action asynchrone
Mettez à jour votre slice et ajoutez createAsyncThunk :
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
export const fetchTasks = createAsyncThunk('tasks/fetchTasks', async () => {
const response = await fetch('https://jsonplaceholder.typicode.com/todos?_limit=5');
if (!response.ok) {
throw new Error('Failed to fetch tasks');
}
return response.json();
});
Gestion des états asynchrones
Mettez à jour votre slice pour suivre le chargement et les erreurs :
const initialState = {
items: [],
status: 'idle',
error: null
};
Ajouter extraReducers :
extraReducers: (builder) => {
builder
.addCase(fetchTasks.pending, (state) => {
state.status = 'loading';
})
.addCase(fetchTasks.fulfilled, (state, action) => {
state.status = 'succeeded';
state.items = action.payload;
})
.addCase(fetchTasks.rejected, (state, action) => {
state.status = 'failed';
state.error = action.error.message;
});
}
Déclenchement de la récupération
Déclenchement de l'action lors du chargement du composant :
import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchTasks } from '../features/tasks/tasksSlice';
function TaskList() {
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchTasks());
}, [dispatch]);
}
Une logique asynchrone a été ajoutée à l'application. Les tâches sont désormais chargées depuis une API, et l'état suit les statuts de chargement, de succès et d'erreur.
Tout était clair ?
Merci pour vos commentaires !
Section 7. Chapitre 4
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Section 7. Chapitre 4