簡體   English   中英

React Native加載屏幕(條件渲染)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM