Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🧐[问题] 如何在 EditableProTable或者ProTable中使用 antd Table 的 table ref #7893

Closed
roadloser opened this issue Nov 13, 2023 · 6 comments

Comments

@roadloser
Copy link

roadloser commented Nov 13, 2023

🧐 问题描述

我将 pro-components 内置的 antd 版本指定为 5.11.0,并启用了虚拟化功能。在尝试使用 EditableProTableProTable 提供的 actionRef 时,发现没有类似于 table ref 中的 scrollTo 方法可用。我还尝试直接注入一个 ref,希望能够实现目标,但实际上这个 ref 似乎并没有被成功注入到 Table 组件的 ref 上。

请问有什么方法可以解决这个问题吗?非常感谢!

@roadloser roadloser changed the title 🧐[问题] 如何在 ProTable 中使用 antd Table 的 table ref 🧐[问题] 如何在 EditableProTable 中使用 antd Table 的 table ref Nov 13, 2023
@roadloser roadloser changed the title 🧐[问题] 如何在 EditableProTable 中使用 antd Table 的 table ref 🧐[问题] 如何在 EditableProTable或者ProTable中使用 antd Table 的 table ref Nov 13, 2023
@ChenAlmost
Copy link

#4509
遇到了同样的问题,发现是没有暴露出这个api。

@Deer404
Copy link

Deer404 commented Dec 12, 2023

遇到了同样的问题,

@chenshuai2144
Copy link
Contributor

EditableProTableProTable 中使用 antdTabletable ref,可以通过 actionRef 属性来实现。你可以先引入 ActionType 类型并使用 useRef 创建一个 actionRef 对象:

import { ProColumns, ActionType } from '@ant-design/pro-table';
import { useRef } from 'react';

const columns: ProColumns<API.CurrentUser>[] = [
  {
    title: '姓名',
    dataIndex: 'name',
    hideInSearch: true,
  },
];

const actionRef = useRef<ActionType>();

export default <ProTable actionRef={actionRef} />;

然后,你就可以通过 actionRef 来获取 Table 组件的实例,并调用其相关的方法来滚动至指定位置。例如,你可以在需要的地方调用 actionRef.current?.scrollTo 方法来实现滚动操作。

请注意,Table 组件的 ref 不会直接注入到 ProTableEditableProTable 上,而是注入到 actionRef 对象中,通过 actionRef.current 来访问 Table 组件的实例。

如果是table本身的 dom,推荐使用 id 来设置。

@bowencool
Copy link

bowencool commented Jan 19, 2024

没有这个 scrollTo 方法,是我写错了吗

image image

我现在是这么写的,暂时能用:

            document.querySelector(".ant-table-body")?.scrollTo({ top: 0 });

EditableProTableProTable 中使用 antdTabletable ref,可以通过 actionRef 属性来实现。你可以先引入 ActionType 类型并使用 useRef 创建一个 actionRef 对象:

然后,你就可以通过 actionRef 来获取 Table 组件的实例,并调用其相关的方法来滚动至指定位置。例如,你可以在需要的地方调用 actionRef.current?.scrollTo 方法来实现滚动操作。

请注意,Table 组件的 ref 不会直接注入到 ProTableEditableProTable 上,而是注入到 actionRef 对象中,通过 actionRef.current 来访问 Table 组件的实例。

如果是table本身的 dom,推荐使用 id 来设置。

@here-is-zhizhi
Copy link

@ChenAlmost

EditableProTableProTable 中使用 antdTabletable ref,可以通过 actionRef 属性来实现。你可以先引入 ActionType 类型并使用 useRef 创建一个 actionRef 对象:

import { ProColumns, ActionType } from '@ant-design/pro-table';
import { useRef } from 'react';

const columns: ProColumns<API.CurrentUser>[] = [
  {
    title: '姓名',
    dataIndex: 'name',
    hideInSearch: true,
  },
];

const actionRef = useRef<ActionType>();

export default <ProTable actionRef={actionRef} />;

然后,你就可以通过 actionRef 来获取 Table 组件的实例,并调用其相关的方法来滚动至指定位置。例如,你可以在需要的地方调用 actionRef.current?.scrollTo 方法来实现滚动操作。

请注意,Table 组件的 ref 不会直接注入到 ProTableEditableProTable 上,而是注入到 actionRef 对象中,通过 actionRef.current 来访问 Table 组件的实例。

如果是table本身的 dom,推荐使用 id 来设置。

Table 的实例并未暴漏在 actionRef.current

@lumiaoshan
Copy link

遇到了同样的问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants