Gestione Dei Dati Asincroni Nell'App
Scorri per mostrare il menu
Ora aggiungi dati provenienti dall'esterno dell'applicazione. Invece di iniziare con una lista vuota, caricherai le attività da un'API.
Creazione dell'azione asincrona
Aggiorna il tuo slice e aggiungi 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();
});
Gestione degli stati asincroni
Aggiorna il tuo slice per tracciare il caricamento e gli errori:
const initialState = {
items: [],
status: 'idle',
error: null
};
Aggiunta di 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;
});
}
Attivazione del recupero dati
Dispatch dell'azione al caricamento del componente:
import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchTasks } from '../features/tasks/tasksSlice';
function TaskList() {
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchTasks());
}, [dispatch]);
}
Logica asincrona aggiunta all'applicazione. I task ora vengono caricati da un'API e lo stato tiene traccia dei caricamenti, dei successi e degli errori.
Tutto è chiaro?
Grazie per i tuoi commenti!
Sezione 7. Capitolo 4
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Sezione 7. Capitolo 4