代码:https://codesandbox.io/embed/react-table-editable-content-ggvcy
当我更新表中的文本并且我有一个onBlur
事件来保持该数据更改的状态时,我希望我的用户单击保存按钮,保存按钮单击被错过。
我相信它被错过了,因为由于data
的状态变化,表格正在刷新。
任何人都可以帮助我了解在触发 onClick 事件时捕获 onClick 事件onBlur
重新渲染的方法吗?
const updateCellData = (idx, id, value) => {
console.log(`idx: ${idx}, id: ${id}`);
const newData = [...data];
newData[idx][id] = value;
console.log(`prev: ${data[idx][id]}, new: ${newData[idx][id]}`);
// setData(newData);
};
我意识到我正在改变状态,因为我没有深度复制对象。奇怪的是,这适用于我的用例,因为我的数据是服务器端的,它会根据需要更新,但我永远不会建议直接改变状态。