繁体   English   中英

React Native错误:undefined不是对象(评估'_this2.props.navigator.push')

[英]React Native error: undefined is not an object (evaluating '_this2.props.navigator.push')

因此,基本上我在与导航器相关的标题中出现错误。 当我按图标时,错误弹出。

我基本上想要做的是在顶部制作一个标签栏,以在三种不同的视图之间切换:提要,Wiki和留言板

这是我的index.android.js :(导入Nav)

_renderScene(route, navigator) {
    var globalNavigatorProps = {navigator};

    switch(route.ident) {
        case "FeedView":
            return(
                <Feed
                 {...globalNavigatorProps}
                />
            );

        case "WikiView":
            return(
                <View>
                    <Text>
                        {'Hello'};
                    </Text>
                </View>
            );

        case "BoardView":
            return(
                <View>
                    <Text>
                        {'Hello'};
                    </Text>
                </View>
            );

        default:
            console.log(`Something went wrong ${route}`);
    }
}

render(){
    return(
        <View>
            <Nav />
            <Navigator
                initialRoute={{ident:"Feed"}}
                ref="appNavigator"
                renderScene={ this._renderScene }
            />

        </View>
    );
}

这是我的Nav.js:

constructor(props){
    super(props);
}

render(){

    console.log(this.props.navigator);
    return(
        <View style={{flexDirection: "column"}}>
            <View style={styles.nav}>
                <Icon onPress={(event) => this.props.navigator.push({ident: "Feed"})} name="newspaper-o" size={22}/>
                <Icon name="wikipedia-w" size={22}/>
                <Icon name="comments" size={22}/>
            </View>
            <View style={styles.divider}/>
        </View>
    );
}

_changeView(type){

}

我不认为这是问题,但是renderScene函数不会绑定到react组件。

尝试将renderScene={ this._renderScene }转换为renderScene={ this._renderScene.bind(this) }

当您没有绑定(this)时,总是会发生此错误,请检查Icon模块的onPress方法

如果您尝试实现选项卡式视图,则有更好的方法可以执行,您可以始终使用开源模块,例如https://github.com/skv-headless/react-native-scrollable-tab-view开发人员以易于使用的方式制作了该示例,并且该示例足以应付大部分内容。

因此,我建议不要使用自己创建此类组件的方式,而是使用社区制作的模块。

希望我的回答对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM