Реагирующая навигация 5 popToTop без анимации

#react-native #react-navigation #react-navigation-v5

#react-родной #реагирующая навигация #реагирующая навигация-v5

Вопрос:

Кто-нибудь знает, как перейти к началу стека без анимации в React Navigation 5?

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

 navigation.dispatch({
  ...StackActions.popToTop(), 
  source: currentRoute.key, 
  target: targetStack.key
});
 

Любой способ сделать это без анимации?

Ответ №1:

вы можете попробовать это

 navigation.popToTop({immediate: true})
 

источник : https://github.com/react-navigation/react-navigation/issues/3480

Комментарии:

1. Это для React Navigation v1. Я использую v5, в котором нет такой опции. Это именно то, что я хочу, хотя это было бы неплохо! Это на самом деле, как я сделал это в RN4.

Ответ №2:

Я сталкиваюсь с той же проблемой… Обходным путем является отключение transitionSpec анимации на close :

 transitionSpec: {
    open: TransitionSpecs.TransitionIOSSpec,
    close: {
        animation: 'timing',
        config: {
            duration: 0,
        },
    },
}
 

Это работает нормально, но проблема в том, что если вы используете Back кнопку с определенного экрана, анимация тоже будет отключена :/

Конечно, это связано с вашим UX и, возможно, это не будет проблемой 🙂