[英]React native. undefined is not object (evaluating 'this.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.