React Native异常跳转问题:未触发指定onPress却跳转至登录页
问题分析与解决方案
你的问题出在**Post a review按钮的onPress属性逻辑上**:当用户未登录时,你直接执行了navigation.navigate(...)方法,而非将其包装为函数。这会导致组件渲染(即从列表详情页跳转到评论页)时,自动触发登录跳转,而非点击按钮时才触发。
修复代码
将按钮的onPress逻辑修改为函数形式:
<Button onPress={userInfo.data ? () => setisModalVisible(true) : () => navigation.navigate(routes.LOGIN, { item: item })} > Post a review </Button>
修复原理
onPress需要接收一个函数引用,只有当按钮被点击时才会执行该函数。原写法中,未登录状态下直接调用navigation.navigate(...),会在组件挂载阶段立即执行跳转逻辑;包装成箭头函数后,只有点击按钮时才会触发跳转。
额外优化建议
- 给
userInfo.data增加可选链判断:userInfo?.data,避免userInfo为undefined时出现报错。 - 将评论输入框的占位文字改为贴合场景的内容,比如
"写下你的评价..."。
内容的提问来源于stack exchange,提问作者ctr1L
相关产品推荐
相关产品推荐

