У меня есть существующая иерархия компонентов, которая выглядит так:
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
от Child
через Wrapper
обратно к Parent
, чтобы Parent
мог получить доступ к Child
ref
независимо от того, есть Wrapper
или нет...
Wrapper
компонентомReact.forwardRef()
. Демо - person Yousaf   schedule 07.08.2020