【问题标题】:Redux redirect using redux-thunkRedux 重定向使用 redux-thunk
【发布时间】:2017-09-04 06:29:15
【问题描述】:

大家好,我有这样的功能:

function dispatchSignup(username, password) {
  return function(dispatch) {
    const newUser = {username: username, password: password}
    axios.post('/signup', newUser).then(() => {
      return dispatch(signupAction)
    }).then(() => {
      return dispatch(push('/'))
    }).catch((error) => {console.log(error)})  
  }
}

此功能首先向我的服务器发送注册请求。如果成功,'.then' 运行并分派一个 signupAction。然后我在此之后调用另一个“.then”,它应该只在这个 signupAction 被调度后运行,它将用户重定向到 '/' aka。我的主页。我遇到的问题是,是的,他们注册了,并且推送的 url 有效,但是它实际上并没有在“/”处呈现组件。这里发生了什么?就好像他们在互相阻挡一样,虽然我不太确定。我认为 Redux-thunk 是异步的,所以我调用的第二个动作在第一个动作成功调度之前不会被调度。

任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: redux redux-thunk


    【解决方案1】:

    然后我在这之后调用另一个 '.then',它应该只在这个 signupAction 被调度后运行

    这个假设是不正确的。 dispatch 函数返回正在调度的操作,而不是 Promise。假设signupAction 也在使用redux-thunk(返回一个动作),那么这就解释了为什么你对push('/') 的调用是立即发生的,而不是等待你的注册过程完成。

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 1970-01-01
      • 2016-06-12
      • 2018-03-19
      • 2017-05-28
      • 2017-08-18
      • 2018-07-08
      • 2020-12-14
      • 2016-10-31
      相关资源
      最近更新 更多