我刚刚发现React的状态中有多个孩子的对象无法轻松呈现。react.js - 使用异步数据的深度对象不起作用
在我的例子我有分量通过AJAX与第三方API说:
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
!
处理这种异步数据的正确方法是什么?
尝试使用'isMounted'方法,像这样http://jsbin.com/wunaze/1/edit?js –
@Alexander这没有帮助 – Kosmetika
您是否改变了'getInitialState'如例? –