Stacknavigatior导航到已经在堆栈中的屏幕

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

我试图找出显示带有新信息的屏幕,该屏幕已经在堆栈中。

屏幕顺序像

个人资料A->个人资料A的关注者列表(单击个人资料B)->个人资料B->个人资料B的关注者列表

个人资料和关注者列表都是屏幕文件。当我切换屏幕时,如果屏幕已经在堆栈中,则转到上一个屏幕。例如,当我单击“配置文件A的关注者列表”中的“配置文件B”时,它会返回并显示“配置文件A”,因为配置文件屏幕已在堆栈中。

我如何生成可以添加到堆栈中的新屏幕?

react-native react-native-navigation stack-navigator
1个回答
0
投票

尝试使用push导航并添加额外的键。

例如:

this.props.navigation.push('ProfileB', {
    // others param, 
    key: maths.random().toString()
});

注意:此处不要使用关注者的ID,因为如果您单击同一关注者,则它会匹配相同的想法,因此可以返回。哪个不好因此使用了任何随机密钥。


0
投票

[react-navigation-stack在屏幕之间具有3种导航方式:

navigate:标准导航,如果要导航到不在堆栈中的新屏幕,它将把它推入所谓的堆栈中。如果导航到已经安装的屏幕,它将弹出回到该屏幕。

[replace:获取当前组件并将其替换为您要浏览的组件

push:将新组件推入堆栈,为其创建新的实例。

想象一个像这样的堆栈:

screen 3
screen 2
screen 1

使用推送,您将可以启动屏幕1的另一个安装实例。

this.props.navigation.push("screen 1")

将堆栈作为:

screen 1
screen 3
screen 2
screen 1

此方法的问题在于,如果向后导航,则会使用旧数据将您带到屏幕的先前实例

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