【求助】ProTable 的 props 源码中同时实现了 actionRef 和 formRef ,实现的原理是否可取? #8597
AlwaysLoveme
started this conversation in
General
Replies: 1 comment
-
理论上来说,都可以转发,只是有没有必要的问题。actionRef 绑定的是 TABLE 的请求函数,也就是内置的一些方法,不需要太多用户自定义的事情,而 formRef 则留了口子给用户传递对应的 form 实例,可以让用户自己针对 form 做他想要的事情,比如获取到所有表单输入项的值,然后去上报日志等。 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
在使用 ProTable 的过程中,发现 ProTable 的 props 中可以同时传入多个 ref, actionRef 和 formRef,于是好奇如何实现,查阅了源码之后,发现 actionRef 使用了 useImperativeHandle 进行转发,未搭配 forwardRef 使用,formRef则首先内部定义 ref,如果 props 传递了formRef,优先使用 props 中传递的,否则使用内部创建的 ref,有以下疑问点,希望能有大佬帮忙解答我的困惑:
(1)为什么formRef不和actionRef一样也使用useImperativeHandle转发一下?
(2)只单独使用 useImperativeHandle 会不会引起一些未知问题?
(3)一个组件中是否可以多次使用 useImperativeHandle来转发不同的 ref? (这个查阅了官方文档和 Google,都没找到相关的答案,问了 chatGpt,得到的回复是可以,不影响功能,我也亲自实验了一下,可以实现功能,但不确定这么做是否可取)
查阅React 官网,官方是强调 useImperativeHandle 必须要和 forwardRef 搭配使用的。
proTable 源码:

Beta Was this translation helpful? Give feedback.
All reactions