Henting av data med createAsyncThunk
Sveip for å vise menyen
Hva du bygger
Du skal hente data fra et API ved hjelp av Redux Toolkit.
Opprette en asynkron handling
Redux Toolkit tilbyr createAsyncThunk for å håndtere asynkron logikk.
import { createAsyncThunk } from '@reduxjs/toolkit';
export const fetchPosts = createAsyncThunk(
'posts/fetchPosts',
async () => {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
return response.json();
}
);
Koble til slice
Håndter den asynkrone handlingen 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 lar deg håndtere asynkron logikk på en strukturert måte. Den sporer automatisk lasting, suksess og feiltilstander.
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
Henting av data med createAsyncThunk
Hva du bygger
Du skal hente data fra et API ved hjelp av Redux Toolkit.
Opprette en asynkron handling
Redux Toolkit tilbyr createAsyncThunk for å håndtere asynkron logikk.
import { createAsyncThunk } from '@reduxjs/toolkit';
export const fetchPosts = createAsyncThunk(
'posts/fetchPosts',
async () => {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
return response.json();
}
);
Koble til slice
Håndter den asynkrone handlingen 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 lar deg håndtere asynkron logikk på en strukturert måte. Den sporer automatisk lasting, suksess og feiltilstander.
Takk for tilbakemeldingene dine!