javascript - 使用 React hook setState 更改数组中的变量

标签 javascript node.js reactjs react-hooks

我在更改某个名称的 actif 值时遇到问题。 如果我点击标签“Sport”,我希望“Sport”中的“actif”值更改为1,但我不确定正确的写法是什么,我已经尝试了很多。

const [activeTag, setActivetag] = useState([
        { name: "Music", value: 1, actif: 1 },
        { name: "Sport", value: 2, actif: 0 },
        { name: "VideoGames", value: 3, actif: 0 },
        { name: "Animals", value: 4, actif: 0 },
        { name: "Party", value: 5, actif: 0 },
        { name: "Arts", value: 6, actif: 0 },
        { name: "Movies", value: 7, actif: 0 },
        { name: "Travels", value: 8, actif: 0 },
        { name: "Cooking", value: 9, actif: 0 },
        { name: "Dance", value: 10, actif: 0 },
    ]);

提前致谢!

最佳答案

您可以在 Click 事件上执行类似的操作:

var newArr = [... activeTag]; 
newArr[index] = your_newvalue
setActiveTag(newArr);

已更新,我认为这个更好:

 function onClick() {
   setArr(arr.map((x) => (x.name === "Sport" ? { ...x, actif: 1 } : x)));
 }

CodeSandbox

关于javascript - 使用 React hook setState 更改数组中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63398382/

相关文章:

javascript - 如何用TestCafe实现window.onerror?

node.js - NodeJS - 如何在不将文件保存在服务器上的情况下从 Base64 返回 PDF?

javascript - 创建 react 应用程序在代码重新加载时偶尔会随机崩溃

reactjs - 状态重定向在 React Router 4.x 中不起作用

javascript - 在模态内居中对齐 react-datetime

javascript - Ajax 响应未执行 (javascript)

javascript - 制作响应式整页的最佳方式?

javascript - 类型定义文件

javascript - 我怎样才能加快我的正则表达式?

javascript - 在 Node.js 中计算 UTF-8 中的两个数字得到 NaN