如何根据redux-thunk数据请求,根据返回的状态码分别处理

在组件中

const mapDispatch = (dispatch) => ({
  subForm (form) {
    // 正常情况按照以下没有问题,但是接口返回错误时该如何捕捉处理?
    const action =  actionCreators.registered(form)
    dispatch(action)
  }
})

export default connect(mapState, mapDispatch)(Login)

actionCreator.js中

export const registered = (form) => {
  return (dispatch) => {
    subRegistered(form).then(res => {
      if (res.code === '1') {
        dispatch(setInfo(res.data)) 
        // 这里如何进行路由的跳转?
      } else {
        // 这里如何返回错误信息给组件?
      }
    })
  }
}
阅读 1.9k
1 个回答

如果actionCreator.js是路由组件,那么直接this.props.history.push('/路由');
如果不是,需要import { withRouter } from 'react-router-dom'

export const registered = withRouter((form) => {...})

组件内再用this.props.history.push('/路由')跳转

关于返回错误信息的,得看你想怎么返回的,处理逻辑是随意的,这个不是固定写法的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题