Я только что понял, что этот объект в состоянии React, который имеет несколько детей, не может быть легко отображен.react.js - Глубокий объект в состоянии с данными async не работает
В моем примере я компонент, который говорит с третьей стороной API через AJAX:
var Component = React.createClass({
getInitialState: function() {
return {data: {}};
},
loadTrackData: function() {
api.getDataById(1566285, function (data) {
this.setState({data: data});
}.bind(this));
},
componentDidMount: function() {
this.loadTrackData();
},
render: function() {
return (
<div>
<h2>{this.state.data.metadata.title}</h2>
</div>
);
}
});
Проблема заключается в том, что {this.state.data.metadata}
делает хорошо ..
Но {this.state.data.metadata.title}
бросает ошибку Uncaught TypeError: Cannot read property 'title' of undefined
!
Каков правильный способ обработки таких данных aync?
Попробуйте использовать метод 'isMounted', как это http://jsbin.com/wunaze/1/edit?js –
@Alexander это не помогает – Kosmetika
вы изменили' getInitialState', как в примере? –