React native 具有es6和redux的嵌套对象的可变性

React native 具有es6和redux的嵌套对象的可变性,react-native,ecmascript-6,redux,React Native,Ecmascript 6,Redux,嵌套对象的错误变异,uom_id获取[null,null],并且它应该始终有一个值 case ADD_TO_CART: console.log('ADD TO CART', {...(JSON.parse(JSON.stringify(payload.product)))}) const ex = state.shoppingCart[`c_${payload.product.default_code}`] ? { ...(JSON

嵌套对象的错误变异,uom_id获取[null,null],并且它应该始终有一个值

    case ADD_TO_CART:
        console.log('ADD TO CART', {...(JSON.parse(JSON.stringify(payload.product)))})
        const ex = state.shoppingCart[`c_${payload.product.default_code}`] ? {
            ...(JSON.parse(JSON.stringify(state.shoppingCart[`c_${payload.product.default_code}`]))),
            quantity: state.shoppingCart[`c_${payload.product.default_code}`].quantity + 1,
            uom_id: [ payload.product.uom_id[0], payload.product.uom_id[1]],
            section: payload.section
        } : {
                ...(JSON.parse(JSON.stringify(payload.product))),
                section: payload.section,
                uom_id: [ payload.product.uom_id[0], payload.product.uom_id[1]] ,
                quantity: 1
            };
            console.log('THIS IS THE EX, ', ex);
        return {
            ...state,
            shoppingCart: {
                ...state.shoppingCart,
                [`c_${payload.product.default_code}`]: state.shoppingCart[`c_${payload.product.default_code}`] ? {
                    ...(JSON.parse(JSON.stringify(state.shoppingCart[`c_${payload.product.default_code}`]))),
                    quantity: state.shoppingCart[`c_${payload.product.default_code}`].quantity + 1,
                    uom_id: [ payload.product.uom_id[0], payload.product.uom_id[1]],
                    section: payload.section
                } : {
                        ...(JSON.parse(JSON.stringify(payload.product))),
                        section: payload.section,
                        uom_id: [ payload.product.uom_id[0], payload.product.uom_id[1]],
                        quantity: 1
                    },
            }
        }
我希望复制对象时使用嵌套级别


我认为您的有效负载对象在产品对象中有一个产品对象

因此:

{ 
   payload : { 
              product : {
                          product : {

                          },
                          section: undefined
              }
   }
}
因此,您必须使用
payload.product.product.uom\u id[0]
来获取您的值

此外,我建议使用对象和数组的解构赋值来帮助清理代码结构

例如


其中,此
product
变量与图像中的
payload.product.product

相同,将焦点放在变为空的计量单位id上。感谢您抽出时间提前阅读此内容。Hi CodeYute,感谢您阅读此内容。我已经做了以下操作,但购物车中的一个项目仍然会得到uom_id:[null,null],我知道原因。这是新ReducerId的图像,您可以将其他代码行更改为使用
payload.product.product
{…(JSON.parse(JSON.stringify(payload.product))),节:payload.section,uom\U id:[…payload.product.uom\U id],数量:1};                 log('这是EX',EX)sry我不能正确地发布它,到目前为止,这就是我所改变的,让我进一步分解它console.log
payload
我想你会更好地看到嵌套的变量。到目前为止,我有这个`console.log('ADD TO CART',{…(JSON.parse(JSON.stringify(product))})const ex=state.shoppingCart[
c_${product.default\u code}
]?{(JSON.parse(JSON.stringify(state.shoppingCart[
c\u-product.default\u-code}
])),数量:state.shoppingCart[
c\u-product.default\u-code}
]),数量+1,计量单位id:[…产品.计量单位id],节}`
const { product: { product } } = payload