当返回堆栈时,React导航道具似乎没有刷新

问题描述 投票:0回答:1

因此,我遇到的反应导航的问题是,如果我回去,传递给子元素的道具不会改变。

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', ''),
    ...
}

导航到第一个集合然后能够返回并导航到第二个项目,并将正确的导航道具传递给组件。

reactjs react-native react-navigation
1个回答
0
投票

我发现如果你使用上面的代码,反应导航不能自动区分堆栈导航器中的路由

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
},

但由于某种原因,这对我不起作用,不知道我做错了什么。有小费吗?

© www.soinside.com 2019 - 2024. All rights reserved.