NavigationStateUtils没有推送(使用NavigationExperimental)

时间:2016-10-26 17:07:28

标签: react-native

这是我的AppState类:

export default class AppState {
    constructor() {
        this.navigationState = {
            index: 0,
            routes: [{ key: "InitialView" }]
        };
    }
    updateNavigationState(type, route = null) {
        switch (type) {
            case NavigationStateUpdateType.Push:
                console.log(this.navigationState.routes.length);
                console.log(this.navigationState.routes[0].key);
                if (route !== null) {
                    console.log("Route: " + route);
                    this.navigationState = NavigationStateUtils.push(this.navigationState, { key: route });
                }
            case NavigationStateUpdateType.Pop:
                this.navigationState = NavigationStateUtils.pop(this.navigationState);
        }
    }
}

现在,如果我在InitialView内执行此操作:

this.props.appState.updateNavigationState(NavigationStateUpdateType.Push, "InitialView1");

什么都没发生。似乎NavigationStateUtil.push不起作用。这是控制台的样子:

AppState.js:18 1
AppState.js:19 InitialView
AppState.js:21 Route: InitialView1
AppState.js:18 1
AppState.js:19 InitialView
AppState.js:21 Route: InitialView1
AppState.js:18 1
AppState.js:19 InitialView
AppState.js:21 Route: InitialView1

为什么routes没有更新?或者我做错了什么?

修改

我的GlobalNavigation组件(提问):

const { CardStack: NavigationCardStack } = NavigationExperimental;
let GlobalNavigation = class GlobalNavigation extends Component {
    render() {
        return (React.createElement(NavigationCardStack, {renderScene: this._renderScene.bind(this), navigationState: this.props.appState.navigationState}));
    }
    _renderScene() {
        return (React.createElement(InitialView, {appState: this.props.appState}));
    }
};

顺便说一下:所有这些代码都是由TypeSript生成的。

0 个答案:

没有答案