我遇到以下错误:
Parsing error: Unexpected token, expected ","
在我的功能组件(不是类)中,我有:
const [ ministries, setMinistries ] = useState({
options: '',
selected: ''
});
后来我尝试通过执行以下操作来更新ministries
:
let opts = [1, 2, 3, 4];
setMinistries({
ministries.selected: opts
})
假设部委是对象,而选定的部委是部委,则我希望使用点符号。 部委。selected:选择工作。
我在做什么错了?
答案 0 :(得分:2)
请注意,useState
更新程序会用新的更新程序覆盖以前的状态,并且不会执行任何合并。
相反,它要求您每次都传递完整状态。
但是,this.setState
中的class component
并非如此。
根据我的建议,记住这一点很重要,以避免微妙的不良行为。
因此,更新状态的正确方法是:
setMinistries(prevMinistries => ({
...prevMinistries,
selected: opts
}));
答案 1 :(得分:0)
您不能将ministries.selected
用作对象键。
您可以这样做:
setMinistries({
selected: opts,
});
答案 2 :(得分:0)
setMinistries({
ministries.selected: opts
})
这是错误的语法。您可以在对象内调用对象的属性。
尝试
setMinistries({
ministries: {
selected: opts
}
})
或
setMinistries({
selected: opts
})