1
resposta

Motivo da variável "likeada" ser retornada

Olá, segue abaixo o código e explicação da aula e minha dúvida:

if(action.type === 'LIKE'){
    return trocaFoto(state,action.fotoId,fotoEstadoAntigo => {
        const likeada = !fotoEstadoAntigo.likeada;

        const liker = action.liker;
        const possivelLiker = fotoEstadoAntigo.likers.find(likerAtual => likerAtual.login === liker.login);

        let novosLikers;
        if(possivelLiker === undefined){
            novosLikers = fotoEstadoAntigo.likers.concat(liker);
        } else {
           novosLikers = fotoEstadoAntigo.likers.filter(likerAtual => likerAtual.login !== liker.login);
        }

        return {likeada,likers:novosLikers};

});
//...

Explicação da aula: ... Nós vamos retornar as informações que precisamos alterar. Só passando a variável (likeada) ele irá explodir e passaremos os novosLikers. O código inteiro que repetimos, da constante fotoEstadoAntigo até o return novaLista será removido, permanecendo apenas o return com o state. ...

Minha dúvida: Nessa parte que você explica que no return foi passado likeada que irá explodir. Poderia me explicar um pouco melhor o que significa explodir nesse contexto? eEporque ela deve ser passada? Pela explicação eu estava entendo que no retorno desses métodos bastava passar o novo state que é a lista de likers, assim como nos outros métodos se retornou apenas a lista de comentários e a lista de fotos.

Obrigado pela atenção

1 resposta

O explodir, acredito que seja no contexto do código quebrar.

O importante da lógica toda do código é alterar a informação do objeto da foto likeada e retornar a versão atualizada para a lista de fotos.