当我第二次单击 OnClick(SetState) 时出现错误,我该怎么办?
P粉138871485
P粉138871485 2024-02-21 21:47:27
0
1
826

当我第一次点击 <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>

这里我有屏幕 第一次点击:

第二次点击:

我选择哪个按钮并不重要

P粉138871485
P粉138871485

全部回复(1)
P粉865900994

这并没有按照您的想法进行:

SetSubjects(Subjects[sub] = true)

表达式 Subjects[sub] = true结果是值 true,因此您将 Subjects 设置为值 true。当然,它不具有您期望从 Subjects 对象获得的任何属性。

我怀疑您正在寻找这个:

SetSubjects({ ...Subjects, [sub]: true })

这会将 Subjects 设置为包含当前 Subjects 上所有属性的对象,并将 sub 中的值定义的属性设置为 true

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!