簡體   English   中英

React Native Navigator renderView返回條件不合邏輯

[英]React Native Navigator renderView return conditional not logical

我正在Android中創建一個react本機應用程序。

我有一個條件我的renderView方法,似乎邏輯似乎沒有意義。 下面的代碼是我的render和renderView方法。 我不明白的是下面的renderView方法:

renderView: function(route, navigator) {
    if (route.id === 'VaquinhaView') {
        return  (
            <VaquinhaView openDrawer={this.openDrawer} navigator={navigator} />;
        )
    } else if (route.id === 'HomeView') {
        return (
            <HomeView openDrawer={this.openDrawer} />
        );
    }
},

render: function() {

    var _renderView = this.renderView;
    var _changeView = this.changeView;

    return (
        <DrawerLayoutAndroid
            drawerWidth={deviceWidth - 50}
            ref={'SIDE_MENU'}
            drawerPosition={DrawerLayoutAndroid.positions.Left}
            renderNavigationView={() => <NavigationView changeView={_changeView} />}>

            <Navigator
                ref={'NAV'}
                initialRoute={{
                    id: 'HomeView', 
                    component: HomeView
                }}
                configureScene={() => Navigator.SceneConfigs.FloatFromRight}
                renderScene={(route, navigator) => _renderView(route, navigator)}>
            </Navigator>
        </DrawerLayoutAndroid>
    );
}

如果我將route.id作為'VaquinhaView'傳遞,它將返回HomeView組件。 我從來沒有見過像這樣的條件行為。 如果我跨過一行,它會跳到下面。 截屏:

在此輸入圖像描述

在此輸入圖像描述

我知道它不是遞歸地調用該方法(我已經檢查過),並且我嘗試用純JS而不是JSX編寫它。

編輯:我也嘗試更改語法,但仍然失敗: 在此輸入圖像描述

編輯2(根據要求):

changeView: function(route) {


    this.renderView(route, this.refs['NAV']);
    this.closeDrawer();
},

被稱為:

_this.props.changeView({id: rowData.view}); 

(rowData.view是視圖的字符串名稱)

所以,

事實證明,我不認為我是想直接調用renderView(),而是讓Navigator這樣做。 這解決了主要問題。

在這一點上值得記住,解釋的JS首先被轉換,所以事件雖然看起來條件滿足,但它仍然在'else'塊中,你可能不會看到被解釋的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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