Hentning af Data med createAsyncThunk
Stryg for at vise menuen
Hvad du bygger
Datahentning fra et API ved hjælp af Redux Toolkit.
Oprettelse af en asynkron handling
Redux Toolkit tilbyder createAsyncThunk til håndtering af asynkron logik.
import { createAsyncThunk } from '@reduxjs/toolkit';
export const fetchPosts = createAsyncThunk(
'posts/fetchPosts',
async () => {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
return response.json();
}
);
Forbindelse til slicen
Håndtering af den asynkrone handling i din slice:
import { createSlice } from '@reduxjs/toolkit';
import { fetchPosts } from './postsThunk';
const postsSlice = createSlice({
name: 'posts',
initialState: {
items: [],
status: 'idle',
error: null
},
reducers: {},
extraReducers: (builder) => {
builder
.addCase(fetchPosts.pending, (state) => {
state.status = 'loading';
})
.addCase(fetchPosts.fulfilled, (state, action) => {
state.status = 'succeeded';
state.items = action.payload;
})
.addCase(fetchPosts.rejected, (state, action) => {
state.status = 'failed';
state.error = action.error.message;
});
}
});
export default postsSlice.reducer;
createAsyncThunk gør det muligt at håndtere asynkron logik på en struktureret måde. Automatisk sporing af loading-, succes- og fejltilstande.
Var alt klart?
Tak for dine kommentarer!
Sektion 5. Kapitel 2
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
Sektion 5. Kapitel 2