【求助】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
-
在使用 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