当化简器字段为空时部署操作



假设我有一个包含当前用户信息的身份验证缩减器。当身份验证减少器为 null,但我在本地存储中具有有效的 jwt 时,自动部署 populateUser() 操作的最佳方法是什么?

如果您使用的是 React-Router,则可以使用 "onEnter" 钩子将 ajax 请求发送到后端路由,该路由在每次发生路由更改时检查令牌的请求标头。 然后,服务器发回关联的用户数据,从而允许更新状态。以下代码假设对 api 请求使用 react-redux、redux-thunk 中间件和 axios。

<Provider store={store}>
    <Router history={browserHistory}>
      <Route path="/" component={App} onEnter={checkAuth }>      
        < children..../>
    </Route>
  </Router>
</Provider>
      
function checkAuth(){
  store.dispatch(authenticate())   
}     
function authenticate() {
  return function (dispatch) {
     axios.get('/api/auth/')
     .then(user => {
         dispatch(populateUser(user))
       }
    }
 }

最新更新