Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向前反应ref:ref和其他道具_Javascript_Reactjs_Use Ref_React Forwardref - Fatal编程技术网

Javascript 向前反应ref:ref和其他道具

Javascript 向前反应ref:ref和其他道具,javascript,reactjs,use-ref,react-forwardref,Javascript,Reactjs,Use Ref,React Forwardref,父组件: const Parent=(道具)=>{ const ref=useRef(); 返回 } 和孩子: const Child=forwardRef((props,ref)=>{ 返回单击 }) 如果我想把更多的道具传递给孩子,而不仅仅是ref // in parent <Child onClick={...} prop1={...} prop2={...} ref={ref} /> 我搜索了文档和教程,但什么也没找到;通过反复试验,我想这是可行的: //在父级中 然

父组件:

const Parent=(道具)=>{
const ref=useRef();
返回
}
和孩子:

const Child=forwardRef((props,ref)=>{
返回单击
})
如果我想把更多的道具传递给
孩子
,而不仅仅是
ref

// in parent
<Child onClick={...} prop1={...} prop2={...} ref={ref} />
我搜索了文档和教程,但什么也没找到;通过反复试验,我想这是可行的:

//在父级中
然后在
Child
中,我可以从
props
中获得这些道具(
onClick
prop1
prop2

这就是我需要做的吗?将
ref
作为传递给孩子的最后一个道具

如果在
Child
中有多个按钮需要在parent中使用
ref

//该怎么办
// in parent
<Child onClick={...} prop1={...} prop2={...} ref={ref} />
顺序无关紧要
forwardRef
从属性中提取ref属性并创建包装器

其他道具在
props
中可用(在
forwardRef
回调函数中的第一个参数)


如果你想使用多个引用,你可以使用这个例子。

好吧,我遵循了这个方法

父组件

const Parent = (props) => {
  const ref = useRef();

  return <Child _ref={ref} />
}
const Child = forwardRef(({ _ref, prop1, prop2, prop3, ...props }) => {
  return <button ref={_ref} ...>click</button>
})
const Parent=(道具)=>{
const ref=useRef();
返回
}
子组件

const Parent = (props) => {
  const ref = useRef();

  return <Child _ref={ref} />
}
const Child = forwardRef(({ _ref, prop1, prop2, prop3, ...props }) => {
  return <button ref={_ref} ...>click</button>
})
const Child=forwardRef({u ref,prop1,prop2,prop3,…props})=>{
返回单击
})

它起作用了

考虑熟悉React文档-道具和参考是如何工作的。道具将收到您在父组件中的子组件上添加的多个值,请遵循第一条注释:)