Перейдите к вложенному маршруту, добавив больше маршрутов в стек - PullRequest
0 голосов
/ 01 мая 2020

Я использую React Navigation v5, и чтобы вы поняли мой вопрос, вот как организованы мои маршруты:

   (Top Stack)
[Root] --- [Chat]
             |          (Chat Stack)
             |---[Chat List] --- [Message List]

Я хочу go от Root до Message List но я хочу добавить также Chat List в стек, чтобы, когда пользователь нажимал кнопку «Назад», он возвращался к Chat List вместо экрана Root.

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

Вот как я делаю это прямо сейчас:

navigationRef.current?.dispatch(() => {
              return CommonActions.reset({
                index: 1,
                routes: [
                  {name: 'Root'},
                  {
                    name: 'Chat',
                    state: {
                      index: 1,
                      routes: [
                        {
                          name: 'ChatList',
                        },
                        {
                          name: 'MessagesList',
                          params: {
                            chatId: pushData?.chatId,
                          },
                        },
                      ],
                    },
                  },
                ],
              });
            });
...