单击行按钮从 antd table 中删除行
Remove row from antd table on row button click
我正在尝试从 antd table 中删除数据行,我正在使用下面的代码,当我点击删除按钮时,我的数据集是空的。
请帮忙,提前致谢...
我正在从 API 加载数据,代码如下
const LoadAttendance = async() => {
setLoading(true);
//setData([]);
let url = window.$api_url + '/teacher/myattendance';
await axios.get(url)
.then(async response => {
const actualData = await response.data;
if (response.status == 200) {
//setData(actualData);
setData(actualData)
console.log("actualData " + JSON.stringify(actualData));
}
setLoading(false);
})
.catch(error => {
setLoading(false);
});
};
我的 Antd table 是这样的
return <div>
<Table
columns={columns} dataSource={data}
rowKey="studentId"
pagination={false}
/>
</div>;
这是我的删除功能
const handleDelete = async(stid) => {
//Here is problem data is empty tried both ways data as well as...data
console.log("Data source " + JSON.stringify([...data]));
const myData = data.filter(item => item.studentId !== stid);
setData(myData);
};
这是antd专栏
let cols = [
{
title: 'Sr. #',
width: 150,
render: (text, record, index) => <span style={{fontWeight: 'bold'}}>
{index+1}.
<Popconfirm title="Sure to delete?" onConfirm={() => handleDelete(record.studentId)}>
<a>Delete</a>
</Popconfirm>
</span>
}
]
看起来可能是您 data
状态的陈旧外壳。我建议改为尝试功能状态更新。功能状态更新将从之前的状态更新,而不是使用在任何回调范围内关闭的状态。
const handleDelete = (stid) => {
setData(data => data.filter(item => item.studentId !== stid));
};
我正在尝试从 antd table 中删除数据行,我正在使用下面的代码,当我点击删除按钮时,我的数据集是空的。
请帮忙,提前致谢...
我正在从 API 加载数据,代码如下
const LoadAttendance = async() => {
setLoading(true);
//setData([]);
let url = window.$api_url + '/teacher/myattendance';
await axios.get(url)
.then(async response => {
const actualData = await response.data;
if (response.status == 200) {
//setData(actualData);
setData(actualData)
console.log("actualData " + JSON.stringify(actualData));
}
setLoading(false);
})
.catch(error => {
setLoading(false);
});
};
我的 Antd table 是这样的
return <div>
<Table
columns={columns} dataSource={data}
rowKey="studentId"
pagination={false}
/>
</div>;
这是我的删除功能
const handleDelete = async(stid) => {
//Here is problem data is empty tried both ways data as well as...data
console.log("Data source " + JSON.stringify([...data]));
const myData = data.filter(item => item.studentId !== stid);
setData(myData);
};
这是antd专栏
let cols = [
{
title: 'Sr. #',
width: 150,
render: (text, record, index) => <span style={{fontWeight: 'bold'}}>
{index+1}.
<Popconfirm title="Sure to delete?" onConfirm={() => handleDelete(record.studentId)}>
<a>Delete</a>
</Popconfirm>
</span>
}
]
看起来可能是您 data
状态的陈旧外壳。我建议改为尝试功能状态更新。功能状态更新将从之前的状态更新,而不是使用在任何回调范围内关闭的状态。
const handleDelete = (stid) => {
setData(data => data.filter(item => item.studentId !== stid));
};