Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Cannot read property 'map' of undefined

Olá, todos Estou com o seguinte código:

{console.tron.log(project.Payments)}
        <ul>
          {project.Payments.map(payment => (
            <li key={payment.id}>
              <span>payment.amount</span>
            </li>
          ))}
        </ul>

Estou pegando o aviso como se project.Payments estivesse undefined. Quando confiro no log do Reactotron vejo: http://prntscr.com/s9q90a

Alguma sugestão?

Editado: Até consegui resolver agora criando um novo state no momento que busco o project da Api.

setPayments(project.Payments);

Mas ainda assim não compreendo o problema da outra abordagem.

Agradeço desde já

3 respostas
solução!

Fala ai José, tudo bem? As vezes ele pode não ser um array no estado inicial, ou seja, ele primeiro contem um valor padrão e só depois de requisitar os dados que ele é preenchido com o array.

Isso pode acontecer caso o seu project seja definido inicialmente como um objeto vazio {} ou algo do tipo.

Adicione mais console.log e veja todos os logs que serão feitos para o project.Payments, em algum momento ele deve ser undefined e é nesse momento que você precisa realizar o tratamento.

Espero ter ajudado.

Agora entendi, Matheus.

Muito obrigado pela resposta.

Voltarei no código para tentar descobrir.

Abraços!

Boa José, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software