Reactjs this.props.dispatch的回调函数

Reactjs this.props.dispatch的回调函数,reactjs,redux-saga,Reactjs,Redux Saga,我正在调用一个调度函数,如下所示 this.props .dispatch({ type: LOGIN_REQUESTED, payload: { username, password, }, }) 我想在成功执行此操作时发送另一个操作 我尝试了then函数,但得到的错误是this.props.dispatch(…)。then不是一个函数因为您使用的是redux saga,您可以使用一个生成器来

我正在调用一个调度函数,如下所示

this.props
      .dispatch({
        type: LOGIN_REQUESTED,
        payload: {
          username,
          password,
        },
})
我想在成功执行此操作时发送另一个操作
我尝试了
then
函数,但得到的错误是
this.props.dispatch(…)。then不是一个函数

因为您使用的是redux saga,您可以使用一个生成器来监视
登录成功

在API成功响应后分派此操作

takeLatest(LOGIN_REQUESTED, watchForLogin)
takeLatest(LOGIN_SUCCESSFUL, watchForLoginSuccess)

watchForLogin(action) {
  doLogin('/some/url')
    .then(response => dispatch(loginSuccess(response))) // dispatch login success
    .catch(error => dispatch(loginFailed(error))) // dispatch error
}

watchForLoginSuccess(action) {
  doSomethingAfterLogin()
}

调度操作是异步的。因此,如果您希望在此调度之后再进行一次调度。您希望在什么上下文中使用此调度?@ChristophenGo on login success我想调用另一个调度API@paruchuri-p是的,我想在这次调度之后再调度一次。我怎么做到的?我不想在geneartors中登录。我可以在组件本身中完成吗?听起来你可能想用
redux thunk
来代替:@NIshamMahsin,想想中间件——一个系统的行为方面,一旦一个动作被分派,它就会做出反应。通过这种方式,您可以将渲染和行为的责任分开。