Quando usamos uma função com a sintaxe padrão "function(){...}" ocorre a sobreposição do "this", e com isso perdemos o acesso ao this anterior.
Já a Arrow Function não sobrepõe o this.
Uma solução mais simples seria trocar:
success: function(resposta) {
this.setState({lista: resposta});
}.bind(this)
Por:
success: (resposta) => {
this.setState({lista: resposta});
}
Apenas essa mudança já torna possível ver os dados na tabela.