基于react-native-router-flux中的一些逻辑的不同初始场景

时间:2016-11-03 01:13:46

标签: react-native react-native-router-flux

是否可以根据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;

0 个答案:

没有答案