功能组件上的 React 更新状态钩子不允许点表示法



我收到以下错误:

Parsing error: Unexpected token, expected ","

在我的功能组件(不是类(中,我有:

const [ ministries, setMinistries ] = useState({
options: '',
selected: ''
});

稍后在另一种方法中,我尝试通过执行以下操作来更新ministries

let opts = [1, 2, 3, 4];
setMinistries({
ministries.selected: opts
})

假设部委是对象并且选择在部委中,我希望点符号。 部委选择:选择工作。

我做错了什么?

请注意,useState更新程序会用新状态覆盖以前的状态,并且不会执行任何合并。 相反,它要求您每次都传递完整状态。

但是,this.setStatein aclass component并非如此。

根据我的建议,重要的是要记住避免微妙的不良行为。

因此,更新状态的正确方法是:

setMinistries(prevMinistries => ({
...prevMinistries,
selected: opts
}));

不能将ministries.selected作为对象键。

你可以做:

setMinistries({
selected: opts,
});
setMinistries({
ministries.selected: opts
})

这是错误的语法。在对象中调用对象的属性。

尝试

setMinistries({
ministries: {
selected: opts
}
})

setMinistries({
selected: opts
})

相关内容

  • 没有找到相关文章

最新更新