首页 > 解决方案 > 使用 React Hooks 向数组中的对象添加属性

问题描述

刚开始学习钩子,就遇到了这个问题。我试图将相同的属性添加到数组中的每个对象,如下所示:

const array = [ { 'a': 1, 
                  'b': 2, 
                  'c': 3}, 

                { 'd': 4, 
                  'e': 5, 
                  'f': 6} ]

const [ example, setExample ] = useState(array)

期望的结果如下:

const array = [ { 'a': 1, 
                  'b': 2, 
                  'c': 3, 
                  'g': 7}, 
                
                 { 'd': 4, 
                   'e': 5, 
                   'f': 6, 
                   'g': 7} ]

我写的函数:

function addG () {
  let toBeAdded = { 'g' : 7 }
  let alteredArray = array.map((object) => {
    return {...object, toBeAdded}
  }
  return alteredArray
}

然后调用函数:

const [ example, setExample ] = useState(()=>{addG()})

它不工作哈哈很想指出我做错了什么!提前致谢!

标签: reactjsreact-hooks

解决方案


你也需要解构toBeAdded。像这样:

function addG () {
  let toBeAdded = { 'g' : 7 }
  let alteredArray = array.map((object) => {
    return {...object, ...toBeAdded}
  }
  return alteredArray
}

推荐阅读