[英]React Native loading screen (conditional render)
我正在嘗試在HTTP調用完成后在React Native Android應用中呈現視圖。
我的渲染方法:
render: function() {
if (this.state.obj.name) {
return this.renderPage();
} else {
return (<Loading />);
}
}
<Loading />包含顯示“ Loading”的簡單View和Text元素。
我在componentDidMount()中調用網絡請求:
componentDidMount: function() {
var self = this;
SomeService.getObjById(1).then(function(data) {
var obj = JSON.parse(data._bodyText);
self.setState({
obj: obj
});
});
},
但是,當我更新狀態並實例化“ obj”(現在有一個名稱prop)時,渲染被調用,它將返回渲染頁面,但視圖不會更新。
我的renderPage方法可以在以下情況下正常工作:
renderPage: function() {
return (
<View><Text>Hello</Text></View>
)
}
但是,當它有6行以上的代碼時,它似乎並沒有更新。
知道為什么事件雖然在調用完成時條件返回不同的組件,但實際視圖沒有更新?
我通過在更改視圖之前發出請求來解決此問題。
這仍然沒有用,但是我在navigator.push()周圍添加了setTimout(function(){},0),並且由於將“ push”推到了調用堆棧的末尾而起作用了。
並不令人驚訝,但有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.