javascript - React forwardRef: ref 和其他 props
问题描述
父组件:
const Parent = (props) => {
const ref = useRef();
return <Child ref={ref} />
}
和孩子:
const Child = forwardRef((props, ref) => {
return <button ref={ref} ...>click</button>
})
如果我想传递更多的道具而Child
不是 justref
怎么办?
我搜索了文档和教程,但一无所获;通过反复试验,我想这会奏效:
// in parent
<Child onClick={...} prop1={...} prop2={...} ref={ref} />
然后在Child
里面,我可以得到这些道具(onClick
,,, prop1
)prop2
。props
这就是我需要做的一切吗?通过把ref
作为传递给孩子的最后一个道具?
如果我有多个按钮Child
需要一个ref
怎么办?
解决方案
// in parent
<Child onClick={...} prop1={...} prop2={...} ref={ref} />
顺序无关紧要。forwardRef
从属性中提取 ref 属性并创建一个包装器。
其他道具在(回调函数props
中的第一个参数)中可用forwardRef
如果你想使用多个 refs,你可以使用这里的例子。
推荐阅读
- r - 如何在 Shiny 的渲染 UI 中渲染复选框?
- c++ - 从 boost::time_duration 检索微秒
- amazon-web-services - 当 AWS API Gateway 事件中的请求中没有源标头时,这意味着什么?
- c# - 一个进程无法访问文件,因为它正被另一个进程使用
- sql - 在 SQL 中获得不需要的输出
- c++ - 如何在此指针上应用限制限定符
- java - 用单个文件编写的应用程序触发 NullPointerException
- javascript - 为什么 JSON.parse() 在我的代码中不起作用?
- java - 在 Java 中正确使用正则表达式,正则表达式不匹配
- sql - Excel 只读文件的 SQL 请求未使用最新的文件版本