react-native - React Native + React Navigation v5 - 在两个堆栈之间发送参数适用于模拟器,但不适用于真实设备
问题描述
所以,我有一个选项卡导航器,每个选项卡上都有一个堆栈。下面是一个简化的设置。
<Tab.Navigator>
<Tab.Screen name="Home" component={HomeStack} />
<Tab.Screen name="PlanStack" component={PlanStack} />
</Tab.Navigator>
function HomeStack() {
return (
<Stack.Navigator headerMode="none">
<Stack.Screen name="Dashboard" component={Dashboard} />
</Stack.Navigator>
)
}
function PlanStack() {
return (
<Stack.Navigator headerMode="none">
<Stack.Screen name="Plans" component={Plans} />
<Stack.Screen name="Plan" component={Plan} />
</Stack.Navigator>
)
}
在我的仪表板中,我有一个计划列表,并且每个计划都有一个 TouchableOpacity,带有这个 onPress:
onPress={() => { navigate('PlanStack', {
screen: 'Plan',
params: { planId }
}) }}
在 iOS 模拟器中,发送了 planId,但是当我构建应用程序并部署到 Test Flight 时,param 对象为空。
我会很感激任何关于可能发生的事情的想法或想法。谢谢!
解决方案
大声笑,哎呀。这是我自己的愚蠢错误:
显然,如果您将未定义的值传递给对象,它只会删除该键。
所以在我的情况下,我正在发送params: { selectedName: undefined }
,因为这是唯一的关键,它正在返回params: {}
,我将其误解为关于不发送我的参数的反应导航问题。
那么为什么对我来说开发(模拟器)和登台(TestFlight 设备)有什么不同呢?Staging API 与我的本地开发 API 不同步的悠久传统。“选定名称”是一个返回嵌套在其他几个对象中的值,并且将其添加到 api 响应的分支没有部署到登台!
推荐阅读
- typescript - 在打字稿中输入解构属性
- angular - 角度 6:npm 模块 awesome-phonenumber 不验证尼日利亚新电话号码系列
- python - 是否有 python 模块可以通过证书存储中的 RSA 密钥对对数据进行签名和验证?
- jenkins - org.apache.maven.project.ProjectBuildingException:处理 POM 时遇到一些问题:[ERROR] in WSO2 EI Project using jenkins
- javascript - 如何使用 JavaScript 获取 GPS 时间
- docker - gradle docker 文件来构建 jars
- vaadin - 如何滚动页面而不是 Vaadin ComboBox 中的项目?
- kubernetes - 在 Kubernetes 中执行清单文件时出现标签 ValidationError 错误
- c - 确定 PIC16F1516 代码库的 FOSC
- java - Generic 中的 jdk7 和 jdk8 有什么区别?