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



我在 react-navigation 中遇到的问题是,如果我返回,传递给子元素的道具不会改变。

https://github.com/CMarshall92/PostMate-Rest-App

例如,如果我单击ScrollView中的一个元素,它将导航到组件CollectionOverview,其中包含基于该集合获取信息所需的正确id。如果我导航回主视图并单击滚动视图中的其他元素,它将再次导航到 CollectionOverview 组件,但第一次导航转换中的 id 将出现在不正确的元素中。

我做错了什么吗?到目前为止,我在网上搜索没有成功。

主屏幕:

<ScrollView style={styles.containerList}>
{
    ...
    onPress={() => {
        navigation.navigate('CollectionOverView', {
        collectionId: l.id
    })
    ...
}
</ScrollView>

收藏概览:

this.state = {
    ...
    collectionId: navigation.getParam('collectionId', ''),
    ...
}
导航到

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

我发现 React 导航无法自动区分堆栈导航器中的路由。例如,如果您使用上面的代码,但是:

navigation.navigate({
    routeName: `CollectionOverView${i}`,
    params: { collectionId: l.id }
})

然后在堆栈导航器中添加两条路由,即。

CollectionOverView0: {
    screen: CollectionOverView
},
CollectionOverView1: {
    screen: CollectionOverView
},

这似乎允许您在路由之间区分数据。显然,为此添加唯一键将只允许堆栈导航中的一条路由。

navigation.navigate({
    key: uuidv4(),
    routeName: `CollectionOverView${i}`,
    params: { collectionId: l.id }
})
CollectionOverView: {
    screen: CollectionOverView
},

但由于某种原因,这对我不起作用,我不确定我做错了什么。

相关内容

  • 没有找到相关文章