React Native跨屏幕传参问题:第二屏传第三屏报错如何解决
React Native 跨屏传参:第二到第三屏参数未定义问题排查
你用的传参方法本身是正确的,出现「参数未定义」错误大概率是链路中的细节问题,而非方法本身。以下是常见排查点:
第二屏未正确接收第一屏参数
先确认第二屏确实拿到了第一屏传递的参数。比如在第二屏打印route.params,如果这里就是undefined,那传递给第三屏的自然也是空值。可能是第一屏跳转时键名拼写错误,或者第二屏解构时变量名不匹配。第二屏跳转第三屏时参数传递错误
检查第二屏跳转代码的参数键名是否和第三屏接收的一致。比如第二屏传{ userInfo: userData },第三屏却解构const { userData } = route.params,这就会导致未定义。第三屏未做容错处理
如果route.params本身为undefined(比如第三屏可能被直接跳转,而非从第二屏进入),直接解构会报错。建议添加默认值:const { targetVar } = route.params || {};导航栈配置错误
确认第三屏在导航栈中的名称和navigation.navigate中使用的完全一致,名称大小写、拼写错误都会导致跳转到错误页面,进而拿不到参数。
举个正确的完整流程示例:
第一屏跳转代码:
navigation.navigate('SecondScreen', { productId: '1001' });
第二屏接收并传递:
const { productId } = route.params; // 跳转第三屏时确保参数正确传递 navigation.navigate('ThirdScreen', { productId });
第三屏接收:
const { productId } = route.params || {};
内容的提问来源于stack exchange,提问作者davidocodes
相关产品推荐
相关产品推荐

