reactjs - React native navigation.push 没有从参数更新 UI
问题描述
我正在使用反应导航 5,
导航是这样的
Home
-->List
-->detailsA
-->detailsB
-->detailsC
-->detailsD
如您所见,我得到了像上面这样的导航结构,
我从home
一个组件到list
另一个组件使用navigation.navigate
它工作正常。我也可以List
从detailsA
使用navigation.navigate
.
这是代码List to details
<TouchableOpacity
key={info.id}
onPress={() =>
navigation.navigate('CaseDetails', {
screen: 'CaseDetails',
params: {
random: Math.floor(Math.random()* 2000),
title: info.title,
summary: info.summary,
image: info.image,
},
})
}>
如您所见,我可以使用参数传递详细信息。
当我想从另一个页面开始时,问题就开始details
了details
。如文档所述,我在navigation.push
从React NativedetailA
转换时使用detailsB
同时也通过了detailsB。
代码是这样的
<TouchableOpacity
key={item.id}
onPress={() =>
//********** using push here
navigation.push('CaseDetails', {
screen: 'CaseDetails',
params: {
random: Math.floor(Math.random()* 2000),
title: item.title,
summary: item.summary,
image: item.image,
})
}>
正如您在代码中看到的那样。我正在将新title , summary and imag
e 传递给详细信息组件,但 UI 没有更新。
有什么我在这里想念的吗
重要的一点是,如果我从list
到details A
,假设随机生成的数字是555
,如果我从detailsA
到detailsB
随机数仍然是555
解决方案
您是否从 detailsA 导航到 detailsB 只是为了更改其参数?如果是,您可以使用以下功能:
navigation.setParams({//new params here});
推荐阅读
- c# - 尽管安装了包,但无法找到 NuGet 包 NU1101
- serilog - Serilog 不在生产服务器上创建日志文件
- python - Python/SQL/pydobc:获取计数器的 if 操作结果?
- c - 为什么将 &str 转换为 *const i8,将其发送到 C 或从 C 发送,然后再转换回 &str 会导致 Utf8Error?
- python - python图中的3d效果
- java - 如何将手机铃声重置为系统默认设置?
- istio - 上游连接错误或在标头之前断开/重置。重置原因:连接失败
- php - 为 WooCommerce 产品属性创建自定义按钮
- java - 如何将文件本身作为项目处理?
- ubuntu - 主管使用所有 cpu 电源