⊗jsrxPmATGS 51 of 57 menu

Obtenção de dados de vendedores no Redux

Vamos iniciar nossa aplicação com produtos. Vemos que nos cartões de produtos os vendedores não são exibidos. Vamos obter esses dados do servidor e exibi-los. Para isso, precisaremos realizar a sequência de ações já familiar.

Para começar, abra o arquivo server.js. Encontre o array handlers e adicione mais uma tratamento para a requisição GET (após o tratamento GET para produtos). Como você pode ver, é praticamente idêntico:

http.get('/fakeServer/sellers', async () => { await delay(ARTIFICIAL_DELAY_MS) return HttpResponse.json(db.seller.getAll()) }),

Processamos a requisição no servidor. A próxima etapa é no arquivo sellersSlice.js, onde devemos escrever um thunk para obter os dados do servidor. Para isso, importe client e createAsyncThunk nele:

import { createSlice, createAsyncThunk } from '@reduxjs/toolkit' import { client } from '../../api/client'

Agora que obteremos os vendedores do servidor, removê-los-emos do initialState, deixando apenas colchetes vazios:

const initialState = []

E então, antes da função sellersSlice criaremos nosso thunk fetchSellers. Passaremos ao cliente o caminho que especificamos no servidor:

export const fetchSellers = createAsyncThunk( 'sellers/fetchSellers', async () => { const response = await client.get('/fakeServer/sellers') return response.data } )

Só nos resta criar um redutor extra para o sellersSlice. Vamos nos limitar aqui ao tratamento da requisição bem-sucedida. Todas as actions geradas por fetchSellers serão idênticas às actions de fetchProducts:

const sellersSlice = createSlice({ name: 'sellers', initialState, reducers: {}, extraReducers(builder) { builder.addCase(fetchSellers.fulfilled, (state, action) => { return action.payload }) }, })

Lembro que da última vez, ao obter os produtos, alteramos o valor atual do estado. Aqui nós seguimos um caminho um pouco diferente e simplesmente retornamos um novo valor, pois em createSlice também é possível fazer isso. Dessa forma, alcançamos dois objetivos. Primeiro, obtivemos os dados e, segundo, agora temos a garantia de que nada mais aparecerá na lista de vendedores, pois substituímos completamente o slice pelo valor de action.payload.

Abra sua aplicação com os alunos. Abra o arquivo server.js nela, adicione ao array handlers mais um manipulador para a requisição GET de professores.

Agora abra o arquivo teachersSlice.js. Torne o initialState um array vazio, como mostrado na lição. Antes da função studentsSlice escreva o thunk fetchTeachers.

Na função createSlice, adicione um redutor extra, limitando-se ao tratamento da requisição bem-sucedida.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar