如何更新对象状态?
how to update a object state?
我有一个这样的对象:
const [mile, setMile] = useState({
AL: 0,
AK: 0,
AR: 0,
CA: 0,
CA: 0,
CT: 0,
DE: 0,
DC: 0,
FL: 0,
GA: 0,
HI: 0,
ID: 0,
IL: 0,
IN: 0,
IA: 0,
KS: 0,
KY: 0,
LA: 0,
ME: 0,
MA: 0,
)};
我收到了一组对象,如图所示:
Second object
我想计算在每个州行驶的英里数:
类似的东西,但我不知道如何拆分英里对象,我尝试了 Object.entries,但失败了
secondObject.map(row =>{
if (mile.key === row.state)
{
mile.value += row.Miles
}
你试过这个吗:
secondObject.map(row =>{
if (mile.hasOwnProperty(row.state)){
mile[row.state] += row.Miles
}
});
使用setState(prev => return newValue)
。当你更新对象时,你必须小心 return 新对象。
setMile(prev => {
// your can't update prev itself so make a copy
const newMile = Object.assign({}, prev)
secondObject.map(row => {
if (newMile.hasOwnProperty(row.state) {
newMile[row.state] += row.Miles
}
})
return newMile
})
我有一个这样的对象:
const [mile, setMile] = useState({
AL: 0,
AK: 0,
AR: 0,
CA: 0,
CA: 0,
CT: 0,
DE: 0,
DC: 0,
FL: 0,
GA: 0,
HI: 0,
ID: 0,
IL: 0,
IN: 0,
IA: 0,
KS: 0,
KY: 0,
LA: 0,
ME: 0,
MA: 0,
)};
我收到了一组对象,如图所示: Second object
我想计算在每个州行驶的英里数:
类似的东西,但我不知道如何拆分英里对象,我尝试了 Object.entries,但失败了
secondObject.map(row =>{
if (mile.key === row.state)
{
mile.value += row.Miles
}
你试过这个吗:
secondObject.map(row =>{
if (mile.hasOwnProperty(row.state)){
mile[row.state] += row.Miles
}
});
使用setState(prev => return newValue)
。当你更新对象时,你必须小心 return 新对象。
setMile(prev => {
// your can't update prev itself so make a copy
const newMile = Object.assign({}, prev)
secondObject.map(row => {
if (newMile.hasOwnProperty(row.state) {
newMile[row.state] += row.Miles
}
})
return newMile
})