You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native History.js点击商品跳转至Home.js而非详情页问题

问题原因及解决方案

这个问题是嵌套导航(通常是底部标签导航嵌套栈导航)场景下,调用了错误的导航实例导致的跳转逻辑执行到了其他栈内。

常见错误配置及修复方法

  • 错误1:History页面不属于ProductStack的路由范围,你在History页面调用navigation.navigate('ProductDetails')时,默认只会在当前页面所属的导航栈内查找路由,找不到就会向上查找最近的包含该路由的父栈,也就是Home页面所属的ProductStack,所以跳转逻辑在Home的栈内执行。
    修复方案:如果ProductDetails是全局通用页面,直接将路由注册到最外层的导航栈中,或者跳转时指定目标路由所属的栈名,写法为:
    navigation.navigate('ProductStack', { screen: 'ProductDetails', params: { /* 商品参数 */ } })
    
  • 错误2:History页面所在的栈没有注册ProductDetails路由
    修复方案:在History所属的导航栈内也添加ProductDetails的路由配置,这样在History页面调用跳转时会优先在当前栈内打开页面。
  • 错误3:导航实例引用错误,你可能在History页面误用了全局挂载的、属于Home栈的navigation对象,而不是当前History页面props传入的navigation
    修复方案:确认History页面的navigation对象是通过props接收、或者useNavigation()钩子返回的当前页面所属导航实例,不要跨页面共享navigation对象。

内容的提问来源于stack exchange,提问作者Ibrahim Anam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:54:02