当我第一次点击 <a onClick{() => "function"}> 时,一切都很好,但是当我第二次点击时,一切都中断了。 这里我得到了代码:
function ref(sub) {
console.log(Subjects)
SetSubjects(Subjects[sub] = true)
console.log(Subjects)
};
const [Subjects, SetSubjects] = useState({
"Mathematics": false,
"Physics": false,
"Ukranian": false,
"English": false,
"Chemistry": false,
"Informatics": false,
"History": false
})
return (
<div className="area">
<div className="logo_header"><a className="logo_header_text" href="/">Owly</a></div>
<h1 className="tittle">Choose the Subject</h1>
<div className="select_btns">
<a onClick={() => ref("Mathematics")} >Mathematics</a>
<a onClick={() => ref("Physics")} >Physics</a>
<a onClick={() => ref("Ukranian")} >Ukranian</a>
<a onClick={() => ref("English")} >English</a>
<a onClick={() => ref("Chemistry")}>Chemistry</a>
<a onClick={() => ref("Informatics")}>Informatics</a>
<a onClick={() => ref("History")}>History</a>
</div>
这里我有屏幕 第一次点击:
第二次点击:
我选择哪个按钮并不重要
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这并没有按照您的想法进行:
表达式
Subjects[sub] = true的结果是值true,因此您将Subjects设置为值true。当然,它不具有您期望从Subjects对象获得的任何属性。我怀疑您正在寻找这个:
SetSubjects({ ...Subjects, [sub]: true })这会将
Subjects设置为包含当前Subjects上所有属性的对象,并将sub中的值定义的属性设置为true。