问题:1.redux-thunk要解决什么问题?
要解决异步请求问题,Action发出以后,Reducer立即算出State,这叫做同步;Action发出以后,过一段时间再执行
Reducer,这就叫做异步。
2.怎么解决异步?
①把Ajax放在Reducer中,Reducer是纯函数,不能进行读写操作
②放在Action中,$.get(URL,function(data){
return data;
//回调函数返回的是里面这一层的,无法把数据返回出去
})
redux-thunk的含义:
①帮助我们让所有的组件的props存在了dispatch方法,注意这个组件一定要被connect处理后才生效
②改造store.dispatch,使得它可以接受函数为参数(正常情况下只能是对象,不是函数)
③同步:Action Creator返回一个Action
异步:异步的Action Creator不是直接返回Action,而是返回一个携带dispath的函数
④点击按钮发出的函数相当于延长了dispatch持续时间,就是说我要dispatch出一个action,但是我不立即发出,因为参数需要
Ajax获得,此时返回一个携带dispatch的函数,相当于延长了dispatch
⑤现在connect中一般不谢第二个参数了,就是说省略掉MapDispatchToProps