1

是否可以根据 react-native-router-flux 中的一些异步逻辑设置不同的初始场景?我实际上想要做的是在第一次运行应用程序时显示不同的场景(比如说登录页面)。我通过在本地的 sqlite 数据库中存储一些值来确定第一次运行。

我当前的实现是将“虚拟”组件设置为初始场景,我可以在其中执行数据库逻辑,然后重定向到适当的场景。虽然它有效,但我强烈认为必须有更好的方法。

谢谢。

//currenlty, App.js looks something like this:

//imports here  

//app starting point, imported into index.ios.js and index.android.js
export default class App extends Component {

    render() {
        const store = createStore(allReducers, {});

        return (
            <Provider store={store} >
                <Router>
                    <Scene key="dummy" component={Dummy} />
                    <Scene key="login" component={Login} />
                    <Scene key="main" component={Main} />
                </Router>
            </Provider>
        );
    }

}



And dummy component something like this:


//imports here

class Dummy extends Component {

    componentWillMount() {
        const initService = new InitService();

        //some asyn func that checks local db to determine if this is the first time running
        initService.hasRunBefore()
            .then(value => {
                if (value === true) {
                    Actions.main({ type: 'replace' });
                }
                else {
                    Actions.login({ type: 'replace' });
                }
            }
            );
    }

    render() {
        return (
            <View />
        );
    }
}

export default Dummy;
4

0 回答 0