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;