Stacknavigatior навигации к экрану, который уже находится в стеке - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь выяснить, отображается ли экран с новой информацией, которая уже находится в стеке.

Порядок экрана такой же, как

Профиль A -> Список подписчиков профиля A (нажавв профиле B) -> Профиль B -> Список подписчиков профиля B

Профиль и Список подписчиков - это экранные файлы. Когда я переключаю экраны, если экран уже в стеке, он переходит к предыдущему. Например, когда я нажимаю «Профиль B» в «Списке подписчиков профиля А», он возвращается и показывает «Профиль А», потому что экран профиля уже находится в стеке.

Как создатьновый экран, который можно добавить в стек?

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

react-navigation-stack имеет 3 способа навигации между экранами:

navigate: стандартная навигация, если вы переходите на новый экран, не в стеке, он помещает его в так называемый стек. Если вы перейдете к экрану, который уже был смонтирован, он вернется к нему.

replace: принимает текущий компонент и заменяет его на тот, который вы хотите перемещать

push: помещает новый компонент в стек, создавая его новое изображение.

Отображение стека, подобного следующему:

screen 3
screen 2
screen 1

С помощью push вы сможете запустить другое изображение экрана1.

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

Уйдет из стека следующим образом:

screen 1
screen 3
screen 2
screen 1

Проблема этого метода заключается в том, что при переходе назад вы попадете на предыдущие экземпляры экрана. со старыми данными

0 голосов
/ 12 октября 2019

Попробуйте перейти с помощью push с добавлением дополнительного ключа.

Например:

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

Примечание: не используйте здесь идентификатор подписчиков, потому что если вы нажмете на того же подписчика, тоэто будет соответствовать той же идее, так что может быть может вернуться. Что не хорошо. Так что использовали любые случайные ключи.

...