javascript - 使用扩展运算符使用 react 钩子(Hook)更新映射函数内的状态

标签 javascript arrays reactjs react-hooks

在 map 函数中使用 useState 钩子(Hook)后,如何更新数组内的值?

目前我有一个可以工作的handleChange函数,但我想直接在输入字段的onChange内部使用setState()。

const [array, setArray] = useState([1,2,3]);

{array.map((v,i) => {<input onChange={(e)=>setArray([...array, ...v, e.target.value])}/>})}

如何更新这样的值?

最佳答案

我建议反对它,因为在我看来,这样的一行行会使代码非常难以阅读。

无论如何,这里是......

{array.map((v,i) => {
  <input onChange={
    (e)=>setArray(
      [...array.slice(0, i), e.target.value, ...array.slice(i+1)]
    )}
  />
})}
<小时/>

给定数组[1,2,3,4,5]i=2,您将得到:

  • ...array.slice(0, i)[1,2]
  • e.target.value → 新值
  • ...array.slice(i+1)[4,5]

关于javascript - 使用扩展运算符使用 react 钩子(Hook)更新映射函数内的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58379162/

相关文章:

javascript - 我该如何解决这个 'key' 警告?

javascript - 将值分配给数组的性能

javascript - 如果值有逗号,则循环并将对象字符串值转换为对象

javascript - 我们可以使用变量在 JAVASCRIPT 中声明一个 div 吗?

arrays - 声明一个常量数组

php - 如何比较两个具有多个元素的数组以查找不同的元素

javascript - React 测试事件冒泡

reactjs - 如何使徽章出现在 Material UI 中的卡片标题旁边

javascript - 我可以根据点击 li className 在一个 php 页面中显示单独的数据表吗?

JavaScript switch 语句只返回第一种情况