reactjs - 功能组件上的反应更新状态钩子不允许点符号
问题描述
我收到以下错误:
Parsing error: Unexpected token, expected ","
在我的功能组件(不是类)中,我有:
const [ ministries, setMinistries ] = useState({
options: '',
selected: ''
});
稍后在另一种方法中,我尝试ministries
通过执行以下操作进行更新:
let opts = [1, 2, 3, 4];
setMinistries({
ministries.selected: opts
})
假设部委是对象,并且选择的是部委,我希望使用点符号。ministries.selected:选择工作。
我究竟做错了什么?
解决方案
请注意,useState
更新程序会用新状态覆盖以前的状态,并且不会执行任何合并。相反,它要求您每次都传递完整的状态。
但是,this.setState
在class component
.
根据我的建议,记住这一点很重要,以避免微妙的不良行为。
因此,更新状态的正确方法是:
setMinistries(prevMinistries => ({
...prevMinistries,
selected: opts
}));
推荐阅读
- java - 在提交给 Executor Service 的任务之间存在延迟
- python - SQLAlchemy 仅过滤来自不同对的最小字段值
- unity3d - 玩家在死亡后仍然可以在按下方向键时移动
- android - 如何使用网格 Flutter 同时滚动小部件
- javascript - 如何计算数组中的每个元素并为每个项目创建一个键/值对象?
- python - for循环Python中的字符串
- c++ - 在没有具体实现的模板函数的情况下创建新的 T 实例
- c# - 通过区域在 HamburgerMenu 中的 WPF 棱镜绑定不起作用
- swift - CAShapeLayer 不会出现
- android - 在 Android 上使用 Room 时如何安装最新版本的 Sqlite aar