reactjs - 如何使用 useState 从数组中的数据设置状态?
问题描述
代码必须设置如下状态:
let [dateState, setDateState] = useState({
mon: true,
wed: true,
fri: false
})
我有一个数组:
const arrayData = [mon,wed,fri]
我尝试在 setDateState()
内部使用,forEach()
但它仍然无法正常工作。有没有办法像下面的代码一样设置状态?
解决方案
检查这个例子。希望它可以帮助你。请打开您的控制台以查看打印的更新值。
import React, {useState} from "react";
export default function UseStateExample() {
const [dateState, setDateState] = useState({
mon: false,
wed: false,
fri: false
});
function clickHandler(e) {
setDateState({
...dateState,
[e.target.id]: true
});
console.log(dateState);
}
return (
<div>
<ul>
<button id="mon" onClick={clickHandler}>Set Monday</button>
<button id="wed" onClick={clickHandler}>Set Wednesday</button>
<button id="fri" onClick={clickHandler}>Set Friday</button>
</ul>
</div>
);
}
推荐阅读
- android - 如何在 Android 上的改造中使用 401 errorCode 中的 response.body
- java - java - 如何使用类型变量在java中创建参数化类型?
- reactjs - 如何在 axios 调用中更新状态时在单元测试(React JS)中断言状态?
- laravel - laravel snappy 外部链接不起作用
- android - Android 在任务之间切换
- python - mindist[l] <- ndist[l] 中的错误:下标分配中不允许使用 NA,同时在 R 中使用 predict 方法进行混合判别分析
- javascript - 如何在 React 中以两种方式绑定作为数组接收的数据?
- windows - Windows 批处理 - 变量替换在内部 For 循环中不起作用,例如文件大小
- express - 我应该在无服务器应用程序中使用 Express.js 吗?
- javascript - 如何在反应中使用UseState钩子中的数组以及如何动态更新它