在Redux中,如果我使用的话说如下数据结构:
{
products: [
{id:1, name:'tv', description:'A color Sony TV', cost:1000},
{id:2, name:'remote control', description:'A black compact Remote Control', cost: 999}
],
shoppingCart: [],
checkoutCart: []
}
我使用Redux combineReducers
combineReducers({products, shoppingCart, checkoutCart})
如果我想将shopping Cart
数据复制到checkoutCart
对点击事件的说法,我会在哪里这样做/或者我应该这样做?
答案 0 :(得分:0)
当你使用combineReducers
时,你假设减速器是独立的,他们看不到彼此的状态。每个减速器只会收到一个州的“切片”。
为了实现您的目标,我会考虑将shoppingCart
和checkoutCart
reducers / state加入一个并使用switch (action.type)
知道该怎么做。
现在您可以在新的reducer上创建一个返回类似
的动作{checkoutCart:clone(state.shoppingCart)}
答案 1 :(得分:0)
我会使用操作并将整个购物车数据作为有效负载发送
如果难以传递组件中购物车的数据,您可以按照此处所述https://stackoverflow.com/a/35674575/1868008访问操作创建器中的状态,但您需要使用redux-thunk
答案 2 :(得分:0)
如果您想将shoppingCart
克隆到checkoutCart
。您可以在onClick
函数中将this.props.shoppingCart
作为动作调用的参数传递。
onClick(e) {
this.props.checkOutActions.checkOut(this.props.shoppingCart);
}