你决不能改变
Store
(州)除
reducer
. 减速器收到一个动作(
ADD_ADDRESS_SUCCESS
)有效载荷(
{address: {...}}
)然后用这些信息更新商店:
reducer(state = initialState, action) {
switch (action.type) {
case ADD_ADDRESS_SUCCESS:
return Object.assign({}, state, {
addresses: state.addresses.push(action.payload.address)
})
default:
return state
}
}
请注意,我们总是复制状态,而不是对其进行变异。
要真正理解它,请阅读
documentation
用于@Angular Redux/商店。
对于您应该使用的api调用
Epics
:想想
Epic
作为管道,在处理副作用时将一个操作转换为一个或多个其他操作。在你的情况下史诗的反应
ADD_ADDRESS_REQUEST
,使用有效负载进行API调用,然后将操作转换为
添加地址成功
或
ADD_ADDRESS_ERROR
,具体取决于api调用的结果。它永远不会更新状态本身,而是将其委托给reducer处理
添加地址成功
和
添加地址错误
分别是。
在相应的
@angular-redux/store docs
.