React native navigation.push 没有更新参数中的 UI
React native navigation.push is not updating the UI from the params
我正在使用反应导航 5,
导航是这样的
Home
-->List
-->detailsA
-->detailsB
-->detailsC
-->detailsD
如你所见,我得到了与上面类似的导航结构,
我使用 navigation.navigate
从 home
组件转到 list
组件
它工作正常。我也可以使用 navigation.navigate
.
从 List
到 detailsA
这是代码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
页面时,问题就开始了。
正如文档所述,我在从 detailA
到 detailsB
时使用 navigation.push
React Native
同时也传递了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});
我正在使用反应导航 5,
导航是这样的
Home
-->List
-->detailsA
-->detailsB
-->detailsC
-->detailsD
如你所见,我得到了与上面类似的导航结构,
我使用 navigation.navigate
home
组件转到 list
组件
它工作正常。我也可以使用 navigation.navigate
.
List
到 detailsA
这是代码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
页面时,问题就开始了。
正如文档所述,我在从 detailA
到 detailsB
时使用 navigation.push
React Native
同时也传递了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});