因此,我遇到的反应导航的问题是,如果我回去,传递给子元素的道具不会改变。
https://github.com/CMarshall92/PostMate-Rest-App
例如,如果我单击ScrollView中的一个元素,它将导航到组件CollectionOverview,其中包含根据该集合获取信息所需的正确ID。如果我要导航回主视图并单击滚动视图中的其他元素,它将再次导航到CollectionOverview组件,但第一个导航过渡中的id将出现在不正确的内容中。我是否做错了如果有这样的链接到内容解释这将是伟大的,因为到目前为止我没有成功搜索谷歌。
期待听到人们的讲话,尽快谈谈。
主屏幕:
<ScrollView style={styles.containerList}>
{
...
onPress={() => {
navigation.navigate('CollectionOverView', {
collectionId: l.id
})
...
}
</ScrollView>
CollectionOverView:
this.state = {
...
collectionId: navigation.getParam('collectionId', ''),
...
}
导航到第一个集合然后能够返回并导航到第二个项目,并将正确的导航道具传递给组件。
我发现如果你使用上面的代码,反应导航不能自动区分堆栈导航器中的路由
navigation.navigate({
routeName: `CollectionOverView${i}`,
params: { collectionId: l.id }
})
然后在stackNavigator中添加两个路由,即。
CollectionOverView0: {
screen: CollectionOverView
},
CollectionOverView1: {
screen: CollectionOverView
},
这似乎允许您在路由之间区分数据。显然,为此添加一个唯一键将只允许堆栈导航中的一个路由。
navigation.navigate({
key: uuidv4(),
routeName: `CollectionOverView${i}`,
params: { collectionId: l.id }
})
CollectionOverView: {
screen: CollectionOverView
},
但由于某种原因,这对我不起作用,不知道我做错了什么。有小费吗?