使用forwardRef传递多个元素

问题描述 投票:0回答:1

如何使用forwardRef从组件传递多个元素

我有这个组件,我想将loader--holderloader--holder__logo分别传递给父函数组件

const Loader = forwardRef((props, ref) => {
  const ref1 = useRef(null);
  const ref2 = useRef(null);
  return (
    <div className="loader--holder" ref={ref1}>
      <div className="loader--holder__box">
        <div className="loader--holder__logo"ref={ref2}>
          <img src={logo} alt="logo" />
        </div>
      </div>
    </div>
  );
});

父组件

export default function HomePage() {
  const ref = React.createRef();
  return (
   <div>
      <Loader ref={ref} />
   </div>
)
}
javascript reactjs
1个回答
0
投票
只需将所需的内容分配给转发的ref:

const Loader = forwardRef((props, ref) => { const ref1 = useRef(null); const ref2 = useRef(null); useEffect(() => { if (ref) { ref.current = { ref1, ref2, }; } }, [ref]); return ( <div className="loader--holder" ref={ref1}> <div className="loader--holder__box"> <div className="loader--holder__logo" ref={ref2}> <div>Hello</div> </div> </div> </div> ); }); // Usage export default function HomePage() { const ref = useRef(); useEffect(() => { console.log('in parent', ref); }, []); return <Loader ref={ref} />; }

Edit exciting-brook-xvwe1
© www.soinside.com 2019 - 2024. All rights reserved.