Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Gestion des Données Asynchrones dans l'Application | Création d'une Application Réelle avec Redux Toolkit
Gestion d'État avec Redux Toolkit dans React

bookGestion 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 ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 7. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 7. Chapitre 4
some-alt