Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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