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

如何从Stack Navigator传递参数到Material Top Tab Navigator?

解决嵌套Tab导航器的参数传递问题

你遇到的问题是因为直接把参数传给了MaterialTopTab导航器本身,而非它内部的'Net banking'子页面,子页面无法直接读取父导航器的route参数。下面提供两种可行的解决方式:

方法一:直接导航到目标Tab页面并传参

React Navigation支持直接导航到嵌套导航结构里的具体屏幕,修改导航代码,指定目标Tab页面并传递参数:

// ComponentY(PaymentOption页面)中的导航代码
navigation.navigate('MaterialTopTab', {
  screen: 'Net banking',
  params: { body: data }
});

修改后,ComponentX就能直接通过route.params.body获取到传递的参数。

方法二:从Tab导航器传递参数到子页面

如果需要默认进入MaterialTopTab导航器时就给'Net banking'页面传参,可以在定义Tab导航器时,将导航器自身的route参数传递给子页面:

// MaterialTopTabs导航器的定义代码
const MaterialTopTabs = createMaterialTopTabNavigator();

function MaterialTopTabsNavigator({ route }) {
  return (
    <MaterialTopTabs.Navigator>
      <MaterialTopTabs.Screen
        name="Net banking"
        component={ComponentX}
        // 将Tab导航器的参数传递给子页面
        initialParams={{ body: route.params?.body }}
      />
      <MaterialTopTabs.Screen
        name="Cash Payment"
        component={ComponentZ}
      />
    </MaterialTopTabs.Navigator>
  );
}

这种情况下,你原来的导航代码navigation.navigate('MaterialTopTab', {body : data})可以继续使用,ComponentX同样能通过route.params.body拿到参数。


内容的提问来源于stack exchange,提问作者Madhav mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:50:54