navigator.push的自定义sceneConfigs不起作用

时间:2016-02-05 13:58:22

标签: react-native

我正在使用一个组件来完成我的应用程序中的所有路由。通过props,该组件中的所有函数都调用navigator.push。

一个例子......

login(navigator) {
    navigator.push({view: 'profile'});
}
showModal(navigator) {
    navigator.push({
        view: 'modal',
        sceneConfig: Navigator.SceneConfigs.FloatFromBottom
    });
}

当我通过登录功能导航到个人资料时,它会使用floatromright默认值导航我。当我使用showModal导航时,无论我的FloatFromBottom调用如何,它都会执行FloatFromRight。

这里发生了什么?我这样做不正确吗?

$ react-native -v
react-native-cli: 0.1.10
react-native: 0.19.0

David提供的解决方案。我的导航器现在看起来如下:

render() {
    return (
        <Navigator
            style={styles.application}
            initialRoute={{id: 1}}
            configureScene={route => {
                if (route.sceneConfig) {
                    return route.sceneConfig;
                }
                return Navigator.SceneConfigs.FloatFromRight;
            }}
            renderScene={(route, nav) => {
                return this.renderScene(route, nav);
            }}
            />
    );
}

1 个答案:

答案 0 :(得分:1)

如果我错了,有人会纠正我,但我认为你必须在你的导航器中添加这样的内容:

<Navigator
    ...
    configureScene={(route) => {
      if (route.sceneConfig) {
        return route.sceneConfig;
      }
      return Navigator.SceneConfigs.FloatFromRight;
    }}
    ...
    />