在响应本机redux中将对象连接到数组

时间:2019-05-11 15:17:17

标签: react-native redux

我在使用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
    }
}

1 个答案:

答案 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
    }
}

未经测试!!。希望对您有所帮助:)