reactjs - 预期的表达。用 eslint 做出反应
问题描述
这是我的代码有问题
handleXPosition(e) {
const x = parseFloat(e.target.value);
this.setState((prevState) => ({ position: ...prevState.position, x}));
}
这是我的状态:
this.state = {
position: { x: 0.5, y: 0.5 },
rotate: 0,
scale: 1,
width: 250,
height: 160,
imageSource: '',
editMode: false,
};
我的 jsx 部分中的按钮:
<div>
<TextField
label="Position X"
type="range"
onChange={this.handleXPosition}
inputProps={{ min: 0, max: 1, step: 0.01 }}
/>
</div>
我有这个消息dans VS code
[ts] Expression expected. [1109]
在...prevState.position
部分。
我不明白
感谢
解决方案
如果你只想position
从你的状态中取出,你不需要解构它:
handleXPosition(e) {
const x = parseFloat(e.target.value);
this.setState(prevState => ({ position: prevState.position, x }));
}
如果你想从之前的 props 中取出每个值:
handleXPosition(e) {
const x = parseFloat(e.target.value);
this.setState(prevState => ({ ...prevState, x }));
}
编辑
要修改嵌套x
值,您必须将旧对象解构到适当位置,并且只覆盖该x
值:
this.setState(prevState => ({ position: {...prevState.position, x}}));
推荐阅读
- android - Android Studio Firebase 测试实验室基础设施故障:验证期间出现内部错误
- android - 如何通过 CameraX 中的 Mediastore 保存到 Media 文件夹?
- c++ - 包装类的专业化
- c++ - C++宏定义了一个空数组
- excel - VBA Sum If 适用于活动工作表但与其他工作表错误
- python - 打开顶层窗口时的灰色按钮
- java - 如何用另一种类型的元素替换 java.util.List 中的元素?
- asp.net - 为什么我的 2 个 Livecharts 笛卡尔实例不起作用?
- apache-flink - Flink 从单个 jar 运行多个作业
- software-design - 如何实现开闭原则?