Я использую 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,
},
},
],
},
},
],
});
});