javascript - 改变部分状态
问题描述
我的 useState Hook 有点问题。我只想改变“答案”。
const [questions, setQuestions] = useState({
question1: { answer: "1", isCorrect: false },
question2: { answer: "1", isCorrect: false },
question3: { answer: "1", isCorrect: false },
question4: { answer: "1", isCorrect: false }
});
const onChange = e => {
setQuestions({
...questions,
[e.target.name]: { answer: e.target.value }
});
};
此功能有效,但isCorrect
消失了。
我知道我可以使用[e.target.name]: { answer: e.target.value, isCorrect: false}
,但我想要以前的状态。...isCorrect
不起作用。这应该很容易,但我找不到解决办法。我希望有人可以帮助我。
解决方案
spread
原始对象并覆盖answer
const onChange = e => {
setQuestions({
...questions,
[e.target.name]: { ...questions[e.target.name], answer: e.target.value }
});
};
推荐阅读
- java - 多个面板 - 如何将一个按钮从一个类链接到另一个类?
- r - 从日期画一个月
- angular - primeng p-datatable 保存过滤器标题值
- asp.net-mvc - 如何从登录页面传递值
- swift - 使用 URLSession 抓取网页时如何保持登录状态?
- google-apps-script - 什么公式可以在 Google 表格中用于将数据从一个单元格拆分和提取到多个单元格?
- node.js - 请求模块返回 unicode 字符
- sql - 查找字符串中文本的行和位置
- html - 是否可以在非视频标签中播放视频,如果可以,您是如何做到的?
- android - 错误:“代码:12500,消息:12500:”发布后但不在调试中