Håndtering af asynkrone data i appen
Stryg for at vise menuen
Nu tilføjes data, der kommer udefra appen. I stedet for at starte med en tom liste, indlæses opgaver fra et API.
Oprettelse af asynkron handling
Opdater din slice og tilføj 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 af asynkrone tilstande
Opdater din slice for at spore indlæsning og fejl:
const initialState = {
items: [],
status: 'idle',
error: null
};
Tilføj 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;
});
}
Udløsning af hentning
Dispatch handlingen, når komponenten indlæses:
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 logik tilføjet til applikationen. Opgaver hentes nu fra et API, og tilstanden sporer indlæsning, succes og fejl.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Håndtering af asynkrone data i appen
Nu tilføjes data, der kommer udefra appen. I stedet for at starte med en tom liste, indlæses opgaver fra et API.
Oprettelse af asynkron handling
Opdater din slice og tilføj 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 af asynkrone tilstande
Opdater din slice for at spore indlæsning og fejl:
const initialState = {
items: [],
status: 'idle',
error: null
};
Tilføj 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;
});
}
Udløsning af hentning
Dispatch handlingen, når komponenten indlæses:
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 logik tilføjet til applikationen. Opgaver hentes nu fra et API, og tilstanden sporer indlæsning, succes og fejl.
Tak for dine kommentarer!