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

React Native中导航传props至类组件却无法获取的问题

问题原因及解决方案

问题出在你配置Stack.Screen的方式上:当用children={() => <Main />}手动渲染组件时,React Navigation不会自动把导航相关的props(包括navigation、route对象)传递给Main组件,所以你的类组件里this.props是空对象,自然拿不到传递的参数。

有两种解决办法:

方法1:改用component属性配置页面

直接把类组件传给Stack.Screen的component属性,React Navigation会自动注入导航相关的props:

<Stack.Screen name="Main" component={Main} />

之后在Main的constructor里,就能通过this.props.route.params.test获取到传递的参数,打印this.props也能看到包含navigation、route的完整对象。

方法2:手动传递导航props(需保留children写法时)

如果因为要额外传递自定义props必须用children,需要把导航提供的props手动传递给Main组件:

<Stack.Screen name="Main">
  {(navProps) => <Main {...navProps} />}
</Stack.Screen>

这里的navProps包含navigation和route,展开后传给Main,同样可以通过this.props.route.params拿到参数。

注意:传递的导航参数是存在route.params里,不是直接在this.props根层级,所以拿到参数后要从route.params里取值。

内容的提问来源于stack exchange,提问作者Kirill Kriachenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:21:18