arrays - 如何在不删除旧状态的情况下设置对象的状态数组

标签 arrays reactjs react-hooks

如何在不清除初始状态的情况下设置单个数组中的对象数组。

const [arr,setArr]=useState([])

const arr1=[{key:'a',value:'a'},{key:'b',value:'b'}]
const arr2=[{key:'c',value:'c'},{key:'d',value:'d'}]

1st cycle setState
setArr((prevState)=>(prevState.push(...arr1)) // required state  arr=[{key:'a',value:'a'},{key:'b',value:'b'}]

2st cycle setState
setArr((prevState)=>(prevState.push(...arr2)) //  required state arr=[{key:'a',value:'a'},{key:'b',value:'b'},{key:'c',value:'c'},{key:'d',value:'d'}]


最佳答案

Array#push返回新数组的 length。尝试使用 spread operator相反:

setArr((prevState) => [...prevState, ...arr1]);
setArr((prevState) => [...prevState, ...arr2]);

关于arrays - 如何在不删除旧状态的情况下设置对象的状态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68235627/

相关文章:

javascript - JS 中数组的元素可以知道谁是该数组的所有者吗?

javascript - 数组解构和展开运算符

javascript - React useState钩子(Hook): passing setter to child- functional update,回调和useCallback

c++ - 有没有办法在 C++ 中扩展动态内存数组?

c - 我们如何将整个段落作为二维数组中的输入作为单独的行?

node.js - React 编译没有错误,但浏览器上没有显示任何组件

javascript - 在 React 组件内的 div 上模拟 ('scroll' )返回 `AssertionError: expected false to be true`

javascript - JavaScript 中的对象引用比较

javascript - 在 React 类组件中使用 Mobx Store 的值?

javascript - React Hooks 实现计数器