Вы можете сделать что-то вроде этого.
Пусть, foo()
- это функция в вашем RefFile
.
A.js
import RefFile from './components/RefFile'
const A = forwardRef((props, ref) => {
let refRefFile = useRef()
...
const accessRefFileFoo = () => refRefFile.foo()
useImperativeHandle(ref, () => ({
accessRefFileFoo
}))
return (
...
<RefFile ref={refRefFile} />
...
)
}
B.js
import A from './A'
const B = () => {
let refA = useRef()
const test = () => {
refA.accessRefFileFoo()
}
return (
<A ref={refA} />
)
}
Здесь вы вызываете функцию с именем foo()
, которая является функцией в вашем RefFile
, из вашего компонента B
. Надеюсь, вы справитесь с этим так, как хотите. Если у вас возникли проблемы, не стесняйтесь комментировать здесь.