🐛[BUG]在ProTable的columns 列中定义了select的防抖不生效
🐛 bug 描述
在ProTable的列中定义了select的防抖不生效
📷 复现步骤
在列的定义中使用了debounceTime, 在fieldProps中也传了 debounceTime, proFieldProps中也传了debounceTime, 但是依然无法防抖
🏞 期望结果
💻 复现代码
{ title: <FormattedMessage id="DMT42" />, dataIndex: "Entity", valueType: 'select', request:async ()=> { return await options.options("NetworkEntityName") }, debounceTime: 3000, proFieldProps: { debounceTime: 3000, }, fieldProps: { debounceTime: 3000, showSearch: true, mode: "multiple", }, width: "8%", },
© 版本信息
- ProComponents 版本: 2.8.6
- umi 版本
- 浏览器环境
- 开发环境 [e.g. mac OS]
🚑 其他信息
我这里是生效的你检查下你的异步方法呢 import { ProTable } from "@ant-design/pro-components";
const Demo = () => { const columns = [ { title: "test", dataIndex: "Entity", valueType: "select", request: async () => { return await new Promise((resolve) => { setTimeout(() => { console.log("测试防抖"); resolve([ { label: "test1", value: "test1" }, { label: "test2", value: "test2" }, { label: "test3", value: "test3" }, ]); }, 1000); }); }, debounceTime: 300, proFieldProps: { debounceTime: 300 }, fieldProps: { debounceTime: 300, showSearch: true, mode: "multiple" }, width: "18%", }, ]; return <ProTable columns={columns}></ProTable>; };
export default Demo;
我这里是生效的你检查下你的异步方法呢 import { ProTable } from "@ant-design/pro-components";
const Demo = () => { const columns = [ { title: "test", dataIndex: "Entity", valueType: "select", request: async () => { return await new Promise((resolve) => { setTimeout(() => { console.log("测试防抖"); resolve([ { label: "test1", value: "test1" }, { label: "test2", value: "test2" }, { label: "test3", value: "test3" }, ]); }, 1000); }); }, debounceTime: 300, proFieldProps: { debounceTime: 300 }, fieldProps: { debounceTime: 300, showSearch: true, mode: "multiple" }, width: "18%", }, ]; return ; };
export default Demo;
import { ProTable } from "@ant-design/pro-components";
const Demo = () => {
const columns = [
{
title: "test",
dataIndex: "Entity",
valueType: "select",
request: async () => {
return await new Promise((resolve) => {
setTimeout(() => {
console.log("测试防抖");
resolve([
{ label: "test1", value: "test1" },
{ label: "test2", value: "test2" },
{ label: "test3", value: "test3" },
]);
}, 1000);
});
},
debounceTime: 300,
proFieldProps: { debounceTime: 300 },
fieldProps: { debounceTime: 300, showSearch: true, mode: "multiple" },
width: "18%",
},
];
return <ProTable
columns={columns}
rowKey="ID"
request={async () => {
return await new Promise((resolve) => {
setTimeout(() => {
console.log("请求");
resolve({
total: 21,
data: [
{ Entity: "test1", ID: 1 },
{ Entity: "test2" , ID: 2},
{ Entity: "test3" , ID: 3 },
{ Entity: "test4" , ID: 4 },
{ Entity: "test5" , ID: 5 },
{ Entity: "test6" , ID: 6 },
{ Entity: "test7" , ID: 7 },
{ Entity: "test8" , ID: 8 },
{ Entity: "test9" , ID: 9 },
{ Entity: "test10" , ID: 10 },
{ Entity: "test11" , ID: 11 },
{ Entity: "test12" , ID: 12 },
{ Entity: "test13" , ID: 13 },
{ Entity: "test14" , ID: 14 },
{ Entity: "test15" , ID: 15 },
{ Entity: "test16" , ID: 16 },
{ Entity: "test17" , ID: 17 },
{ Entity: "test18" , ID: 18 },
{ Entity: "test19" , ID: 19 },
{ Entity: "test20" , ID: 20 },
{ Entity: "test21" , ID: 21 },
],
success: true,
});
}, 1000);
});
}}
/> ;
};
export default Demo;
我试了一下这样 然后翻页也会重复出现测试防抖
我是生效的,建议你把防抖时间调整大一些 我怀疑300ms你没有感知