Olá, nesta aula foi criado o reducer adicionarTodasAsCategoriais. Ele retorna o payload ao invés de atualizar o state. Não entendi muito bem esta parte, gostaria de saber qual é a diferença entre estas duas formas e quando usar cada uma delas.
Olá, nesta aula foi criado o reducer adicionarTodasAsCategoriais. Ele retorna o payload ao invés de atualizar o state. Não entendi muito bem esta parte, gostaria de saber qual é a diferença entre estas duas formas e quando usar cada uma delas.
Olá Thalya!
state.push(payload)
e return payload
são duas formas diferentes de manipular o estado em um reducer, mas elas têm usos diferentes.
state.push(payload)
: Esta é uma forma de adicionar novos dados ao estado existente. Por exemplo, se o estado atual é uma lista de categorias, e você quer adicionar uma nova categoria a essa lista, você pode usar state.push(payload)
. Isso adicionará o payload (a nova categoria) ao final da lista de categorias existentes.
return payload
: Esta é uma forma de substituir completamente o estado atual com os novos dados. Por exemplo, se o estado atual é uma lista de categorias, e você quer substituir essa lista inteira por uma nova lista de categorias, você pode usar return payload
. Isso fará com que o estado atual seja completamente substituído pelo payload (a nova lista de categorias).
No código que você está estudando, return payload
foi usado porque a intenção era substituir todas as categorias existentes pelas novas categorias que foram buscadas.
Vamos a um exemplo prático para ilustrar:
Suponha que o estado atual seja uma lista de categorias como esta: ['Categoria 1', 'Categoria 2', 'Categoria 3']
.
Se você fizer state.push('Categoria 4')
, o estado se tornará ['Categoria 1', 'Categoria 2', 'Categoria 3', 'Categoria 4']
.
Mas se você fizer return ['Categoria 4', 'Categoria 5']
, o estado se tornará ['Categoria 4', 'Categoria 5']
, substituindo completamente as categorias anteriores.
Espero ter ajudado e bons estudos!