阅读参考来自:
图例中, 显示只有dispatch 和Subscription 可以触发Aciton,而Reducer和Effect则是接受Aciton,进行处理的作用. 可是文档中: Effect的 yield put 方法,也可以触发Action,
理解: 是否应该立即为: dispatch | Effect | Subscription ,3个都可以触发Aciton, 而不是图例的两个?
Reducer: 可以接收dispatch触发的Aciton 函数方式处理state, 也是可以唯一的改变state的地方.
Effect: 可以接收到dispatch触发的Aciton, 异步方式处理state, 但是不可以改变state.
理解:
由于 Reducer不可异步操作,也就是不能和server产生来往, 所以凡是异步的state操作都调用effect来完成.
也就是说Aciton需要同步处理state的就由Reducer完成,
Aciton需要异步处理的就由Effect完成,再由yield put触发Aciton,跳到Reducer里面改变state
Effects中描述 select 用于从 state 里获取数据。
理解: 用yield select(state => state.todos);方式, 是从项目的整个state树里面获取数据进行操作, 如同mapStateToProps一般绑定数据.
这样的理解对吗?不对是否给纠正一下?
问题1
问题2
理解正确。
问题 3
理解正确。
Most helpful comment
理解正确。
理解正确。