<TouchableWithoutFeedback onPress={()=>this.props.navigation.navigate('Home')} >
{
this.props.type!=='1' ? <Icon2 name="chevron-with-circle-left" size={28}/>
: <Icon name='chevron-left' style={{ color: "#16527e" }} size={35}/>
}
</TouchableWithoutFeedback>
此代码显示一个错误,指出 this.props.navigation.navigate 不是对象。使用按钮进行导航是否有必要使用this.props.navigation.navigate?谁能帮忙?
不,没有必要。您可以使用任何功能为您的 onPress。我认为问题是你的导航对象。它是未定义的吗?
尝试使用此代码并读取其记录的内容:
<TouchableWithoutFeedback
onPress={()=> console.log("Navigation is :", this.props.navigation}>
{ this.props.type!=='1'?
<Icon2 name="chevron-with-circle-left" size={28}/>
: <Icon name='chevron-left' style={{ color: "#16527e" }}
size={35}/>
}
</TouchableWithoutFeedback>
确保导航包含"navigate"功能,如有必要,甚至记录"this.props.navigation.navigate"。
最后,确保正确配置反应导航。
更多:如果您尝试在表示组件中使用导航,请确保导航是容器组件中的对象,并将导航作为道具向下传递。如果 react-navigation 打开页面 XYZ,请确保 navigation.navigation 在 XYZ 中工作,并将其作为道具传递给其他组件。 如果 XYZ 从 react-navigation 路由打开,它应该有 this.props.navigation。XYZ 渲染 ABC。XYZ 应该将 this.props.navigation 作为道具传递给 ABC:
<ABC navigation = {this.props.navigation}/>