此问题可能是由于使用了Ant Design表格的DefaultEditCell时,编辑单元格时触发setState导致的。可以使用可变状态,例如useImmer或useReducer来优化此问题。
下面是使用useReducer来解决此问题的示例代码:
import React, { useReducer } from 'react';
import { Table } from 'antd';
const initialState = {
data: [
{ name: 'John', age: 32 },
{ name: 'Bob', age: 25 },
],
editing: null,
};
function reducer(state, action) {
switch (action.type) {
case 'startEdit':
return { ...state, editing: action.payload };
case 'finishEdit':
return { ...state, editing: null, data: action.payload };
default:
throw new Error();
}
}
function EditableCell({ rowIndex, colIndex, value, editing, dispatch }) {
const handleChange = (e) => {
const newValue = e.target.value;
dispatch({
type: 'finishEdit',
payload: state.data.map((row, i) =>
i === rowIndex ? { ...row, [colIndex]: newValue } : row,
),
});
};
if (editing) {
return ;
}
return value;
}
export default function App() {
const [state, dispatch] = useReducer(reducer, initialState);
const columns = [
{
title: 'Name',
dataIndex: 'name',
key: 'name',
render: (text, record, rowIndex) => (
),
},
{
title: 'Age',
dataIndex: 'age',
key: 'age',
render: (text, record, rowIndex) => (
),
},
];
const handleEdit = (rowIndex) => {
dispatch({ type: 'startEdit', payload: rowIndex });
};
return (
handleEdit(rowIndex)}>Edit }]}
/>
);
}
相关内容
热门资讯
七分钟辅助!丽水茶苑苹果手机辅...
七分钟辅助!丽水茶苑苹果手机辅助,本来是真的有辅助教程(有挂方式)1、实时丽水茶苑苹果手机辅助透视辅...
第一分钟辅助!闲来辅助神器下载...
第一分钟辅助!闲来辅助神器下载2022,好像真的有辅助方法(有挂教程)1、不需要AI权限,帮助你快速...
九分钟辅助!丽水都莱辅助工具试...
九分钟辅助!丽水都莱辅助工具试用,确实存在有辅助神器(有挂方法)九分钟辅助!丽水都莱辅助工具试用,确...
第一分钟辅助!蛮王辅助器,好像...
第一分钟辅助!蛮王辅助器,好像是有辅助方法(有挂教学)1、首先打开蛮王辅助器辅助器下载最新版本,在蛮...
第六分钟辅助!潮汕汇挂,一贯真...
第六分钟辅助!潮汕汇挂,一贯真的是有辅助插件(有挂辅助)1、这是跨平台的潮汕汇挂轻量版有透视,在线的...
六分钟辅助!微信开心泉州辅助器...
六分钟辅助!微信开心泉州辅助器,一直有辅助器(有挂教学)1、下载好微信开心泉州辅助器透视辅助下载之后...
第3分钟辅助!佛手十三道破解版...
第3分钟辅助!佛手十三道破解版安卓,竟然真的有辅助攻略(有挂存在)1、让任何用户在无需佛手十三道破解...
2分钟辅助!sohoo竞技联盟...
2分钟辅助!sohoo竞技联盟辅助,切实真的有辅助脚本(有挂技术)1.sohoo竞技联盟辅助 选牌创...
第8分钟辅助!心悦手游辅助器,...
第8分钟辅助!心悦手游辅助器,原来真的是有辅助技巧(确实有挂);1、每一步都需要思考,不同水平的挑战...
第十分钟辅助!广东雀神祈福真的...
第十分钟辅助!广东雀神祈福真的有用吗,都是是有辅助技巧(有挂方略)1、下载好广东雀神祈福真的有用吗透...