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,想想中间件——一个系统的行为方面,一旦一个动作被分派,它就会做出反应。通过这种方式,您可以将渲染和行为的责任分开。