我的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
不起作用。它应该很容易,但是我找不到这种爱。我希望有人可以帮助我。 最佳答案
您还需要对嵌套值使用扩展语法,并覆盖答案键
const onChange = e => {
setQuestions({
...questions,
[e.target.name]: { ...questions[e.target.name], answer: e.target.value }
});
};