redux异步action_如何实现异步action(即引入redux的react项目如何使用异步ajax)

在action文件中做出变化,本来在actions文件中定义了一些action creator, 用来生成一个action对象返回,然后dispatch这个对象到store中,现在这个action creator不返回一个对象而是返回一个函数,这个函数中是ajax的代码和其回调函数,这意味着原来dispatch一个对象,现在为了处理异步dispatch了一个函数,为了使得dispatch能够发送一个函数,需要用到redux-thunk这个库对dispatch方法做一个改造,使得dispatch可以接受函数作为参数.

Action 是由store.dispatch方法发送的。而store.dispatch方法正常情况下,参数只能是对象,不能是函数

这时,就要使用中间件redux-thunk, redux-thunk中间件,改造store.dispatch,使得后者可以接受函数作为参数, 因此,异步操作的第一种解决方案就是,写出一个返回函数的 Action Creator,然后使用redux-thunk中间件改造store.dispatch

如果 redux-thunk 发现 dispatch 了一个函数, 他会传给函数一个 dispatch 参数,这解决了 dispatch 不好获取的问题, 他会自己「吃掉」这个函数,不会传递给 reduces,防止 reduces 遇到一个函数而不知所措

我们可以看到,dispatch 一个异步 action 和 dispatch 一个同步的 action 是一致的,component 不用关系这个 action 是异步还是同步的,你可以在任何时间修改他

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值