我在使用redux将对象连接到数组时遇到问题。 当用户单击按钮时,我想将对象连接到数组,但始终显示一个错误,即无法读取null的属性“ concat”。 这是我的代码:
addToCartHandler= ()=>{
const {phoneNumber,accessToken,ctr} = this.props;
let {dataSource} = this.state;
const cart = {title:dataSource.title,image:dataSource.image,id:dataSource.id,count:ctr,price:(dataSource.price-dataSource.discount)*ctr};
this.props.onCart(cart);}
.
.
.
.
const mapDispatchToProps = dispatch => {
return {
onLogin: () => dispatch({ type: actionTypes.SAVEPHONE }),
onToken: token => dispatch({ type: actionTypes.SAVEACCESSTOKEN, token }),
onCart:(cart)=>dispatch({type:actionTypes.CARTPRODUCT,cart})
}
}
这是我的减速器
const initialState = {
cartProduct:[],
}
const ShopReducer = (state=initialState,action)=>{
switch(action.type){
case actionTypes.CARTPRODUCT:
return {
...state,
cartProduct:state.cartProduct.concat(action.cart)
}
default:
return state
}
}
答案 0 :(得分:0)
不能将一个对象与一个数组连接。而是用代码段中的数组包装对象
const initialState = {
cartProduct:[],
}
const ShopReducer = (state=initialState,action)=>{
switch(action.type){
case actionTypes.CARTPRODUCT:
return {
...state,
cartProduct:state.cartProduct.concat([action.cart]) // change here
}
default:
return state
}
}
未经测试!!。希望对您有所帮助:)