我剛剛發現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'如例? –