Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Manipulação de Dados Assíncronos no Aplicativo | Construindo uma Aplicação Real com Redux Toolkit
Gerenciamento de Estado com Redux Toolkit em React

Manipulação de Dados Assíncronos no Aplicativo

Deslize para mostrar o menu

Agora você adiciona dados que vêm de fora do aplicativo. Em vez de começar com uma lista vazia, você irá carregar tarefas de uma API.

Criando a Ação Assíncrona

Atualize seu slice e adicione 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();
});

Lidando com Estados Assíncronos

Atualize seu slice para rastrear carregamento e erros:

const initialState = {
  items: [],
  status: 'idle',
  error: null
};

Adicione 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;
    });
}

Disparo da Busca

Despacho da ação quando o componente é carregado:

import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchTasks } from '../features/tasks/tasksSlice';

function TaskList() {
  const dispatch = useDispatch();

  useEffect(() => {
    dispatch(fetchTasks());
  }, [dispatch]);
}

Lógica assíncrona adicionada ao aplicativo. As tarefas agora são carregadas de uma API, e o estado acompanha os estados de carregamento, sucesso e erro.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 7. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Manipulação de Dados Assíncronos no Aplicativo

Agora você adiciona dados que vêm de fora do aplicativo. Em vez de começar com uma lista vazia, você irá carregar tarefas de uma API.

Criando a Ação Assíncrona

Atualize seu slice e adicione 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();
});

Lidando com Estados Assíncronos

Atualize seu slice para rastrear carregamento e erros:

const initialState = {
  items: [],
  status: 'idle',
  error: null
};

Adicione 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;
    });
}

Disparo da Busca

Despacho da ação quando o componente é carregado:

import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchTasks } from '../features/tasks/tasksSlice';

function TaskList() {
  const dispatch = useDispatch();

  useEffect(() => {
    dispatch(fetchTasks());
  }, [dispatch]);
}

Lógica assíncrona adicionada ao aplicativo. As tarefas agora são carregadas de uma API, e o estado acompanha os estados de carregamento, sucesso e erro.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 7. Capítulo 4
some-alt