реактивная навигация изменить продолжительность перехода GoBack - PullRequest
1 голос
/ 12 марта 2019

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

Есть ли способ изменить продолжительность goBack?

---- EDIT ----

Мой текущий переходConfig:

transitionConfig: ({ scene }) => {
  const params = scene.route.params || {};

  if (params.skipAnimation) {
    return {
      transitionSpec: {
        duration: 0,
        timing: Animated.timing,
      },
    };
  }

  return {};
},

Когда я хочу, чтобы у моего перехода не было анимации, я делаю navigation.navigate и добавляю параметр skipAnimation: true к вызову навигации. Это работает для этого переходного перехода, ОДНАКО, эта длительность равна , а не , наблюдаемой переходом goBack, и функция goBack() не принимает параметры. Таким образом, я пытаюсь выяснить, есть ли способ форсировать продолжительность перехода goBack.

Есть определенный экран, который я хочу просто показать / исчезнуть без анимации.

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете передать конфигурацию своему навигатору следующим образом:

createStackNavigator(
  {
  ....//your routes
  },
  {
    transitionConfig: () => {
      return {
        transitionSpec: {
          duration: 1000
        }
      };
    },
    initialRouteName: "Your first screen"
  }
}

РЕДАКТИРОВАТЬ :

для кнопки "Назад", используйте backhandler ..

componentDidMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
  }

componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress');
  }

  handleBackPress = () => {
    this.props.navigation.navigate('Your Screen'); //this will not push new screen if you have visited that screen and just behave like normal go back
 }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...