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

Problema quando coloca bind no success

Após inserir o bind no success o this.state.lista.map está retornando que não é uma função.

'Uncaught TypeError: this.state.lista.map is not a function'

$.ajax({
      url:'http://localhost:8080/api/cadastro',
      contentType:'application/json',
      dataType:'json',
      type:'post',
      data: JSON.stringify({nome:this.state.nome,email:this.state.email,senha:this.state.senha}),
      success: function(resposta){
        this.setState({lista:resposta});
      }.bind(this),

Aconteceu com alguém?

4 respostas

Oi Maximiliano, realmente não parece ter muita relação. Pode postar o código do componente inteiro? Se quiser, coloca o link para o projeto no github, posso dar uma olhada :).

Olá Alberto,

Segue o link do github: https://github.com/maximilianoalves/estudos-react

Unica diferente é que optei por utilizar uma api com mongo, express e nodejs, mas ele trás o objeto corretamente, e como um objeto para ser inserido no map, porém continua o erro.

Agradeço a força !

Opa, dei uma olhada no código.. não conhecia o node-restful... quando vc cadastra, o que ele retorna? Pq o erro não parece ta linkado com o bind(this)... Estou achando que o retorno não é a lista e aí ta dando errado na invocação do map.

solução!

SIMMMMMMMMMMMMMM! Infelizmente não tinha visto que quando adiciono algo na api ele retorna somente um objeto e não listava todos assim indo errado para a invocação do map.

Muito Obrigado pela ajuda Alberto, admiro muito seu trabalho!

Solução:

success: function(resposta){
        this.setState({ lista: this.state.lista.concat(resposta)});
      }.bind(this)

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