我正在尝试实现一个函数,该函数在呈现主“应用程序”组件之前检查用户是否经过身份验证,但在承诺解决后我无法让我的代码运行。
class App extends Component {
render() {
const sagaMiddleware = createSagaMiddleware();
const reduxStore = createStore(reducers, {}, applyMiddleware(ReduxThunk, sagaMiddleware));
sagaMiddleware.run(Sagas)
getToken = async () => {
const token = await store.get('token')
.then( (token) => {
if (token !== null)
reduxStore.dispatch({type: LOGIN_USER});
})
.catch( (error) => console.log(error) )
}
getToken();
return (
<Provider store={reduxStore}>
<Router>
<Scene key="root">
<Scene key="login" component={ LoginPageContainer } hideNavBar={true}/>
<Scene key="feed" component={ RequireAuth(FeedPageContainer) } initial={true} hideNavBar={true}/>
</Scene>
</Router>
</Provider>
)
}
}
export default App;
上面的代码工作得很好,除了它在 getToken() 函数完成之前渲染组件。我想我可能还没有完全理解 async/await 是如何工作的。提前致谢!