我有一个现有的组件层次结构,如下所示:
const Parent = props => {
const divElement = useRef()
// do something with divElement
return <Child ref={divElement} {...some props} />
}
const Child = React.forwardRef((props, ref) => {
return <div ref={ref}><some stuff here></div>
}
这一切都很好,但是现在我需要有条件地添加一个包装器组件,它包装<Child>
组件以添加一些特殊情况的道具。
基本上我想要的是这样的:
const Parent = props => {
const divElement = useRef()
// do something with divElement
return someCondition ? <Wrapper {...some props} /> : <Child ref={divElement} {...some props} />
}
const Wrapper = props => {
return <Child {...different props} />
}
const Child = React.forwardRef((props, ref) => {
return <div ref={ref}><some stuff here></div>
}
我被困在如何将ref
from 从Child
后面Wrapper
传递到Parent
,所以无论是否存在Parent
都可以访问Child
's ......ref
Wrapper