向后滑动移动多个场景
Swipe back moves multiple scenes
设置
"react": "16.0.0-alpha.3",
"react-native": "0.43.1",
"react-native-router-flux": "^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);
};
};
导航操作
// 根视图(带有“新用户”按钮)
New user -> Actions.sceneRegister
//新用户场景
go next -> Actions.sceneRegister2
在场景中使用 panHandlers={null}
。
设置
"react": "16.0.0-alpha.3",
"react-native": "0.43.1",
"react-native-router-flux": "^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);
};
};
导航操作
// 根视图(带有“新用户”按钮)
New user -> Actions.sceneRegister
//新用户场景
go next -> Actions.sceneRegister2
在场景中使用 panHandlers={null}
。