React native 具有es6和redux的嵌套对象的可变性
嵌套对象的错误变异,uom_id获取[null,null],并且它应该始终有一个值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
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.logpayload
我想你会更好地看到嵌套的变量。到目前为止,我有这个`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