【发布时间】:2018-11-01 20:59:52
【问题描述】:
我有一个 router.js 文件,其中定义了我的所有路由和屏幕,还有 SearchFilter 和一个 Home 组件,所有内容都聚集在一个组件中呈现,包括 SearchFilter。当我将 onPress 道具传递给 SearchFilter 组件之一以导航到另一个屏幕时,出现错误: “未定义不是对象。_this.props.navigation.native -> onPress(SearchFilter)”。当我只提醒某些东西时,它就会起作用。请看代码。任何帮助将非常感激。谢谢
//搜索过滤器
class SearchFilter extends React.Component{
render(){
return (
<View style={styles.main}>
<View style={styles.wrapper}>
<TouchableOpacity style={styles.buttonShape}
onPress={ // Here lies the error*************
() => this.props.navigation.navigate('Details')}
>
<Text style={styles.text}>Super-Market</Text>
<Image source={require('./icons/supermarket.png')} />
</TouchableOpacity>
</View>
</View>
);
}
}
// 路由器
export const ScreenSwitch = StackNavigator({
Home:{
screen: Home,
navigationOptions:{
title: 'Home'
}
},
SearchFilter: {
screen: SearchFilter,
navigationOptions: {
title: 'SearchFilter'
}
},
Details: {
screen: MemberDetails,
navigationOptions: {
title: 'MemberDetails'
}
},
}
//首页
class Home extends React.Component {
render() {
return(
<View style = {styles.main}>
<Header/>
<SearchFilter/>
<ScrollView contentContainerStyle = {styles.scroll}>
<Card />
</ScrollView>
</View>
);
}
}
【问题讨论】:
-
为什么
SearchFilter成为导航器的一部分,您要从其他屏幕导航到SearchFilter吗?我可以看到您在Home组件中使用了SearchFilter作为组件。 -
我想将 SeachFilter 作为主屏幕上的一个按钮,它应该导航到详细信息。
标签: react-native react-navigation