Проведите пальцем назад, чтобы переместиться на несколько сцен

Настройка

реагировать: 16.0.0-альфа.3,

реактивный: 0.43.1,

поток реакции-родной-маршрутизатор: ^ 3.26.16

Ожидаемое поведение

При жесте прокрутки назад я ожидаю анимировать только одну сцену и вернуться к этой сцене.

Фактическое поведение

Время от времени (+- 50%) жест прокрутки назад анимирует 1 или несколько сцен. Несмотря на то, что он анимирует несколько сцен, пока выполняется смахивание назад, он возвращается на одну сцену в каждой ситуации.

введите описание здесь

Этапы воспроизведения

Дайте следующую иерархию сцен, проведите пальцем назад

<Router createReducer={createNavigationReducer}>
  <Scene key="auth" component={RootScene} hideNavBar initial={true} />
  <Scene key="sceneLogin">
    <Scene key="sceneLogin1" component={LoginScene} title="Login" renderLeftButton={renderLeftButton} />
  </Scene>
  <Scene key="sceneRegister">
    <Scene key="sceneRegister1"
      component={RegistrationScene} title="New User" renderLeftButton={renderLeftButton} />
    <Scene key="sceneRegister2"
      component={RegistrationScene2} title="New User2" />
  </Scene>
</Router>

Редуктор (базовый)

export const createNavigationReducer = (params) => {
  const defaultReducer = Reducer(params);
  return (state, action) => {
    if (__DEV__) {
      /* eslint-disable no-console */
      if (console.group) console.group('Navigation:');
      console.log('ACTION:', action);
      if (console.groupEnd) console.groupEnd();
      /* eslint-enable no-console */
    }

    console.log(defaultReducer(state, action));
    return defaultReducer(state, action);
  };
};

Действия навигации

// Основной вид (с кнопкой «Новый пользователь»)

Новый пользователь -> Actions.sceneРегистрация

// Новая пользовательская сцена

перейти далее -> Actions.sceneRegister2




Ответы (1)


Используйте panHandlers={null} в своей сцене.

person Saravana Kumar    schedule 14.06.2017