獲得初始狀態,我想顯示狀態值從已經從componenDidMount稱爲異步函數渲染(),但在第一執行部件,它返回不確定的,對於第二次嘗試它顯示正確的數據陣營原住民從異步componentDidMount
這是我的狀態this.state.userData
我的問題是,什麼是優先處理功能渲染()和componentDidMount()?
這是我的代碼
componentDidMount: function(){
store.get('userData').then((val) => {
if(typeof val != 'undefined'){
this.setState({'userData':val});
}
}).done();
},
render: function() {
return(
<View>
<Text>{this.state.userData}</Text> // displaying undefined
</View>
);
}
它似乎代碼工作,因爲它應該。主線程不會被使用promise對象阻塞(這是obj的承諾)。調用渲染函數store.get(..)後,它會查找userData,但它在第一次渲染中不存在,因爲setState({'userData':val})沒有工作並導致第二次渲染。如果你在getInıtıalState()中用''空字符串添加這個狀態,你將看不到未定義的狀態。你正試圖解決在componentdid mount中未定義的問題,但沒有任何問題。 –