如何更新对象状态?

时间:2021-04-28 14:01:44

标签: javascript reactjs setstate

我有一个这样的对象:

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
 }

2 个答案:

答案 0 :(得分:0)

你有没有试过这个:

secondObject.map(row =>{
 if (mile.hasOwnProperty(row.state)){
  mile[row.state] += row.Miles
 }
});

答案 1 :(得分:0)

使用setState(prev => return newValue)。更新对象时,要注意返回新对象。

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  
})

相关
Updating an object with setState in React
https://reactjs.org/docs/state-and-lifecycle.html