Настройка
реагировать: 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