Compreendendo o Papel dos Reducers
Teoria
Reducers são funções puras que especificam como o estado deve mudar em resposta às ações despachadas. Ao receber o estado atual e uma ação como parâmetros, os reducers retornam o novo estado da aplicação.
Prática
Na pasta reducers do projeto, está o arquivo counterReducer.js, onde é definido o reducer para a funcionalidade do contador:
import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";
const initialState = 0;
const counterReducer = createReducer(initialState,
(builder) => {
builder
.addCase(increment, (state) => state + 1)
.addCase(decrement, (state) => state - 1);
});
export default counterReducer;
Explicação do código:
- Linha 1: Importa a função
createReducerdo pacote@reduxjs/toolkit. Esta função é utilizada para criar reducers no Redux; - Linha 2: Importa os criadores de ação
incrementedecrementdo arquivo../actions/counterAction.js. Estes criadores de ação são usados para definir as ações que o reducer irá tratar; - Linha 4: Define a constante
initialStatecomo0. Isto representa o valor inicial do contador no store do Redux; - Linha 6: Utiliza a função
createReducerpara definir ocounterReducer; - Linhas 6-11: A função
createReducerrecebe dois argumentos: oinitialStatee uma função de callback que define como o estado deve ser atualizado com base nas ações despachadas; - Linha 7: Utiliza o objeto
builderpara definir os casos para diferentes ações dentro da função de callback; - Linhas 9, 10: Utiliza o método
addCasedo objetobuilderpara definir como o estado deve ser atualizado quando ações específicas, comoincrementedecrement, são despachadas; - Linhas 9, 10: A função de callback dentro de
addCaserecebe o estado atual (state) como argumento e retorna o novo estado após aplicar a ação correspondente; - Neste caso, quando a ação
incrementé despachada, o estado é incrementado em1; quando a açãodecrementé despachada, o estado é decrementado em1; - Linha 13: Por fim, exporta o
counterReducercomo exportação padrão do módulo.
Nota
Em resumo, o
counterReducerirá tratar as ações despachadas e atualizar o estado do contador conforme necessário no store do Redux.
1. Qual função é usada para criar reducers no Redux?
2. Qual é o propósito do objeto builder no código?
3. Quando a action increment é disparada, o que acontece com o estado?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain how the builder callback works in createReducer?
What happens if an unknown action is dispatched to the counterReducer?
Can you show an example of how to dispatch the increment or decrement actions?
Awesome!
Completion rate improved to 4.17
Compreendendo o Papel dos Reducers
Deslize para mostrar o menu
Teoria
Reducers são funções puras que especificam como o estado deve mudar em resposta às ações despachadas. Ao receber o estado atual e uma ação como parâmetros, os reducers retornam o novo estado da aplicação.
Prática
Na pasta reducers do projeto, está o arquivo counterReducer.js, onde é definido o reducer para a funcionalidade do contador:
import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";
const initialState = 0;
const counterReducer = createReducer(initialState,
(builder) => {
builder
.addCase(increment, (state) => state + 1)
.addCase(decrement, (state) => state - 1);
});
export default counterReducer;
Explicação do código:
- Linha 1: Importa a função
createReducerdo pacote@reduxjs/toolkit. Esta função é utilizada para criar reducers no Redux; - Linha 2: Importa os criadores de ação
incrementedecrementdo arquivo../actions/counterAction.js. Estes criadores de ação são usados para definir as ações que o reducer irá tratar; - Linha 4: Define a constante
initialStatecomo0. Isto representa o valor inicial do contador no store do Redux; - Linha 6: Utiliza a função
createReducerpara definir ocounterReducer; - Linhas 6-11: A função
createReducerrecebe dois argumentos: oinitialStatee uma função de callback que define como o estado deve ser atualizado com base nas ações despachadas; - Linha 7: Utiliza o objeto
builderpara definir os casos para diferentes ações dentro da função de callback; - Linhas 9, 10: Utiliza o método
addCasedo objetobuilderpara definir como o estado deve ser atualizado quando ações específicas, comoincrementedecrement, são despachadas; - Linhas 9, 10: A função de callback dentro de
addCaserecebe o estado atual (state) como argumento e retorna o novo estado após aplicar a ação correspondente; - Neste caso, quando a ação
incrementé despachada, o estado é incrementado em1; quando a açãodecrementé despachada, o estado é decrementado em1; - Linha 13: Por fim, exporta o
counterReducercomo exportação padrão do módulo.
Nota
Em resumo, o
counterReducerirá tratar as ações despachadas e atualizar o estado do contador conforme necessário no store do Redux.
1. Qual função é usada para criar reducers no Redux?
2. Qual é o propósito do objeto builder no código?
3. Quando a action increment é disparada, o que acontece com o estado?
Obrigado pelo seu feedback!