Håndtering av asynkrone data i appen
Sveip for å vise menyen
Nå legger du til data som kommer fra eksterne kilder. I stedet for å starte med en tom liste, vil du laste inn oppgaver fra et API.
Opprette asynkrone handlinger
Oppdater slicen din og legg til 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();
});
Håndtering av asynkrone tilstander
Oppdater slicen din for å spore lasting og feil:
const initialState = {
items: [],
status: 'idle',
error: null
};
Legg til 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;
});
}
Utløsing av henting
Send handlingen når komponenten lastes inn:
import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchTasks } from '../features/tasks/tasksSlice';
function TaskList() {
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchTasks());
}, [dispatch]);
}
Asynkron logikk er lagt til i applikasjonen. Oppgaver lastes nå fra et API, og tilstanden sporer lasting, suksess og feil.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Håndtering av asynkrone data i appen
Nå legger du til data som kommer fra eksterne kilder. I stedet for å starte med en tom liste, vil du laste inn oppgaver fra et API.
Opprette asynkrone handlinger
Oppdater slicen din og legg til 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();
});
Håndtering av asynkrone tilstander
Oppdater slicen din for å spore lasting og feil:
const initialState = {
items: [],
status: 'idle',
error: null
};
Legg til 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;
});
}
Utløsing av henting
Send handlingen når komponenten lastes inn:
import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchTasks } from '../features/tasks/tasksSlice';
function TaskList() {
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchTasks());
}, [dispatch]);
}
Asynkron logikk er lagt til i applikasjonen. Oppgaver lastes nå fra et API, og tilstanden sporer lasting, suksess og feil.
Takk for tilbakemeldingene dine!