1
resposta

Qual é a diferença entre state.push(payload) e return payload

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.

1 resposta

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.

  1. 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.

  2. 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!