请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

action派发实现疑问

https://img1.sycdn.imooc.com//szimg/5ae8860b0001428e09460582.jpg

老师有个疑问,看到这个地方,一般我写action都是单独文件夹,然后需要的时候引入,那样我需要派发action的时候使用store的dispatch实现,您有些地方也是这么实现的。

唯一一个地方,errorMsg()这个sction,在register方法中直接return返回执行了,并没有使用dispatch,也会派发,有点不明白为啥没有使用dispatch也可以?求告知


正在回答 回答被采纳积分+3

1回答

慕瓜8449030 2018-05-03 10:54:04

这是return 说明我们没有dispatch一个action,没有揍redux那一套,而是直接当做一个actionCreator使用,这里register就是直接返回了一个同步的action,会被自动dispatch  

0 回复 有任何疑惑可以回复我~
  • 提问者 comeonmao #1
    return出来的action,跟一般的actionCreator也是一样的,都是return了一个action,但是register执行后return的action,为什么会自动dispatch而不需要手动去调用dispatch派发呢?
    因为一般我写的时候,都是dispatch(actionCreator(params))这样,是手动dispatch的,这两者有啥不一样,还是没明白老师~。查资料也暂时没找到思路。
    回复 有任何疑惑可以回复我~ 2018-05-03 11:20:58
  • 提问者 comeonmao #2
    registerPost() {
        const {dispatch} = this.props;
        let registerData = this.state;    
        if (!registerData.userName || !registerData.pwd ) {
          dispatch(errorMsg("请输入您的用户名或密码"));
        } else if (registerData.pwd !== registerData.confirmPwd) {
          dispatch(errorMsg("两次密码输入不一致"));
        }else {
          axios.post("/user/register", registerData)
          .then(res => {
            console.log(res);
            dispatch(registerSuccess(registerData))
          })
          .catch(err => {
            console.log(err);
          })
        }
      }
    
    老师我是这样写的。
    回复 有任何疑惑可以回复我~ 2018-05-03 22:40:04
问题已解决,确定采纳
还有疑问,暂不采纳
Redux+React Router+Node.js全栈开发
  • 参与学习       1822    人
  • 解答问题       750    个

全网唯一的React 16+Redux+React Router4实战课程,学到手是你的真本领!

了解课程
意见反馈 帮助中心 APP下载
官方微信