pro-components icon indicating copy to clipboard operation
pro-components copied to clipboard

🐛[BUG]在ProTable的columns 列中定义了select的防抖不生效

Open liu-wh opened this issue 9 months ago • 3 comments

🐛 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]

🚑 其他信息

liu-wh avatar May 27 '25 09:05 liu-wh

我这里是生效的你检查下你的异步方法呢 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;

rubbishmaker avatar Jun 13 '25 13:06 rubbishmaker

我这里是生效的你检查下你的异步方法呢 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;

我试了一下这样 然后翻页也会重复出现测试防抖

liu-wh avatar Jun 17 '25 07:06 liu-wh

我是生效的,建议你把防抖时间调整大一些 我怀疑300ms你没有感知

rubbishmaker avatar Jun 20 '25 16:06 rubbishmaker