首页 > 解决方案 > React Navigation 5 - 我的堆栈路由的参数未合并

问题描述

问题

在反应导航 5 中,当您推送相同的堆栈屏幕时,参数会合并对吗?至少,在我将此堆栈屏幕移动到父堆栈导航器之前,这是我得到的行为。现在,从一个孩子推送屏幕,然后推送同一个屏幕(相同的 2 个实例)时,参数不会合并。任何想法为什么会发生这种情况?

导航结构

前:

-RootStack (Stack Navigator)
    -TabNavigator (Bottom Tab Navigator)
         -HomeStacks (Stack Navigator)
             -Feed (Stack Screen)
             -CommentsStack (Stack Navigator)
                  -Comments (Stack Screen)

有了这个,当像这样从“Feed”导航到“Comments”时:

  navigation.push("Comments", { contentId: "123" });

然后,在评论屏幕中,通过以下方式推送相同的内容:

  navigation.push("Comments", { otherParam: "54" });

屏幕“评论”的第二个实例同时具有参数(合并)contentId 和 otherParam。

-RootStack (Stack Navigator)
    -Comments (Stack Screen)
    -TabNavigator (Bottom Tab Navigator)
         -HomeStacks (Stack Navigator)
             -Feed (Stack Screen)
             

有了这个,当像这样从“Feed”导航到“Comments”时:

  navigation.push("Comments", { contentId: "123" });

然后,在评论屏幕中,通过以下方式推送相同的内容:

  navigation.push("Comments", { otherParam: "54" });

我只在第二个“评论”屏幕实例(未合并)中获得“otherParam”。

标签: javascriptreactjsreact-nativereact-navigationreact-navigation-v5

解决方案


推荐阅读