我正在创建我的fixed-data-table-2
(npm)实现,其中一个编辑按钮将单元格更改为输入,可以编辑然后保存(发布)。
但是有一个主要问题......打字太慢了,因为我每次onChange
在单元格上触发时都会更新整个数组(处于状态)。
事件处理程序(表)
import reactUpdate from "react/lib/update";
onChangeEditableCell(field, rowIndex, newValue) {
const data = reactUpdate(this.state.data, {[rowIndex]: {[field]: {$set: newValue}}})
this.setState({data : data});
}
事件处理程序(单元格)
onChange(e) {
e.preventDefault();
const newValue = e.target.value;
this.props.onHandleInput(this.props.field, this.props.rowIndex, newValue);
}
render() {
const {rowIndex, field, data, editMode, onHandleInput, ...props} = this.props;
return (
<Cell {...props}>
{editMode ? <input onChange={this.onChange} className="text-cell-edit" type="text" value={this.getCell()} /> : data[rowIndex][field]}
</Cell>
);
}
这显然是一个坏主意......我如何才能实现相同但性能方面的目标?
笔记
onHandleInput
(单元格的道具)是onChangeEditableCell
(表的功能)
附言
当用户点击时,我需要data
数组发布整个对象Save