【发布时间】:2021-04-07 08:10:18
【问题描述】:
我在我的 react native 应用程序中使用 redux 在添加和删除时管理购物车项目,所以当我想将项目添加到购物车时,我使用以下内容:
const dispatch = useDispatch()
const addItemToCart = item => dispatch({ type: 'ADD_TO_CART', payload: item })
这是按下上述调度程序时触发的按钮:
<TouchableOpacity onPress={() => { addItemToCart(itemData, total) }} >
<Text style={{ ...FONTS.h5 }}>Add to cart</Text>
<Icon
name="cart-outline"
size={25}
color={COLORS.black}
backgroundColor={COLORS.primary2}
/>
</TouchableOpacity>
所以我在这里将itemData, total 传递给调度员,该调度员应该传递给购物车。
以下是减速器:
const initialState = []
const cartItemsReducer = (state = initialState, action) => {
switch (action.type) {
case 'ADD_TO_CART':
return [...state, action.payload]
case 'REMOVE_FROM_CART':
return state.filter(cartItem => cartItem.id !== action.payload.id)
}
return state
}
export default cartItemsReducer
所以,我想要的是在购物车屏幕和购物车屏幕中接收两个传递的值,我执行以下操作来检查两个值是否都被接收:
cartItems = useSelector(state => state)
console.log("cart item: ", cartItems)
但只能得到itemData,而total没有通过。
我可以做些什么来使两个值都被传递?
【问题讨论】:
标签: react-native redux react-redux