Sono nuovo di React e sto diventando un po 'pazzo cercando di capire cosa sto facendo male. Sto provando ad iterare attraverso un array JSON che ricevo da una chiamata Ajax. Quando mi giro il dati funziona perfettamente, ma quando faccio una chiamata AJAX per ottenere gli stessi dati esatti mi undefined is not a function (evaluating 'this.state.list.map()')
React js map() undefined non è una funzione
dà la matrice:
[ { "name": "drop1" }, { "name": "drop2" }, { "name": "drop3" } ]
la funzione:
var List = React.createClass({
getInitialState: function() {
return {data: {}};
},
componentDidMount: function() {
$.ajax({
url: ACTUAL_URL,
dataType: 'json',
success: function(data){
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err){
console.error(url, status, err.toString());
}.bind(this)
});
},
render: function() {
return (
<ul className="droplist">
{this.state.data.map(function(l){
return (<li>{l.name}</li>)
})}
</ul>
);
}
});
Qualsiasi aiuto è molto apprezzato.
In aggiunta al previsto risposta: normalmente non esegui richieste jax da un componente. – zerkms
@zerkms Non sono d'accordo, normalmente lo faresti se non stai usando Flux. –
@limelights anche se non stai seguendo Flux: è necessario utilizzare un altro modello di progettazione architettonica che separa la presentazione dalla persistenza e dalla logica aziendale. – zerkms