antd protable 的一些配置记录

  • Post author:
  • Post category:其他


官网:

https://procomponents.ant.design/components/table



一、请求



1、直接使用request

egg:

request={async (params: Record<string, any>) => {
              const {
                keyword, // 一些自定义的搜索字段
                current,//当前页数
                 ...res
              } = params;
             
              const newSearchParams = {
                page: current,
                keyword,
              };
              setSearchParams(newSearchParams);
              //可以直接 return fetchSearchList(newSearchParams)
              //也可以如下分开来写
              const result = await fetchSearchList(newSearchParams);//请求
              return {
                data: result.data,
                total: result.total,
                success: true,
              };
            }}


2、使用onSubmit配合dataSource
             const [ListSource, setListSource] = useState<any>();
             const [searchParams, setSearchParams] = useState<any>();
               useEffect(() => {
			      fetchSearchList({ page: 1, pageSize: 10, ...searchParams }).then(res => {
			        if (res.code === 200) {
			          setListSource(res.data)
			        }
			      })
			  }, [searchParams])


             <ProTable
              dataSource={ListSource}
              onSubmit={(params: Record<string, any>) => {
                const {
                  keyword,
                  current
                } = params;
             const newSearchParams = {
                page: current,
                keyword,
              };
                setSearchParams(newSearchParams);
              }}
              />



二、search表单的一些配置

          search={{
              labelWidth: 'auto', //默认80,有时候字段多的时候显示不全,可改为 auto
              collapsed: false, // 是否收起
              span: 6, // span默认一行显示三列,通过调整span调整显示多少列
            }}



三、headerTitle 和 toolBarRender

在这里插入图片描述

headerTitle={
          <Space>
            <span>Basic Table</span>
            <Select<string>
              bordered={false}
              value={intl}
              onChange={(value) => {
                dayjs.locale(intlMap[value].locale);
                setIntl(value);
              }}
              options={Object.keys(intlMap).map((value) => ({ value, label: value }))}
            />
          </Space>
        }
        toolBarRender={() => [
          <Button key="3" type="primary">
            <PlusOutlined />
            New
          </Button>,
        ]}



四、scroll配置

    <ProTable
      scroll={{ x: 1600 }} //可视宽度,超过会显示滚动条
     />



五、刷新表单,重置表单 ActionRef

ActionRef 手动触发

有时我们要手动触发 table 的 reload 等操作,可以使用 actionRef,可编辑表格也提供了一些操作来帮助我们更快的实现需求。

interface ActionType {
  reload: (resetPageIndex?: boolean) => void;
  reloadAndRest: () => void;
  reset: () => void;
  clearSelected?: () => void;
  startEditable: (rowKey: Key) => boolean;
  cancelEditable: (rowKey: Key) => boolean;
}

const ref = useRef<ActionType>();

<ProTable actionRef={ref} />;

// 刷新
ref.current.reload();

// 刷新并清空,页码也会重置,不包括表单
ref.current.reloadAndRest();

// 重置到默认值,包括表单
ref.current.reset();

// 清空选中项
ref.current.clearSelected();

// 开始编辑
ref.current.startEditable(rowKey);

// 结束编辑
ref.current.cancelEditable(rowKey);



六、form表单纯空格校验


      //whitespace: true 不能输入纯空格符
       <Form.Item
          label="主题"
          name="theme"
          rules={[{ required: true, message: '请输入主题', whitespace: true }]}
        >
          <Input placeholder="请输入主题" />
        </Form.Item>



版权声明:本文为weixin_47541876原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。