Buscando Dados com createAsyncThunk
Deslize para mostrar o menu
O que você está construindo
Busca de dados de uma API utilizando Redux Toolkit.
Criando uma ação assíncrona
Redux Toolkit fornece createAsyncThunk para lidar com lógica assíncrona.
import { createAsyncThunk } from '@reduxjs/toolkit';
export const fetchPosts = createAsyncThunk(
'posts/fetchPosts',
async () => {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
return response.json();
}
);
Conectando ao Slice
Tratamento da ação assíncrona dentro do 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 permite lidar com lógica assíncrona de forma estruturada. O recurso rastreia automaticamente os estados de carregamento, sucesso e erro.
Tudo estava claro?
Obrigado pelo seu feedback!
Seção 5. Capítulo 2
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Seção 5. Capítulo 2