使用forwardRef更改功能组件方法

时间:2020-06-26 20:08:04

标签: reactjs

我正在尝试做: 如本教程所述,更改子状态:Change child state from parent

教程使用类组件,我尝试使用功能组件。它会出现类似“功能组件没有实例,因此它们不能具有引用”的错误。 因此,我根据stackoverflow答案here

使用了forwardRef(第一次)

代码:

    import React,{useRef,forwardRef, useEffect} from "react";

const Component = (props) => {
function sayHello(){
  console.log("hello")
}

return <h1>{props.children}</h1>
}
const ForwardComponent = forwardRef((props,ref)=> (<Component ref={ref}> {props.children} </Component>))


export default function App() {
  const hello = useRef()
  useEffect(()=>{
    hello.current.sayHello()
  })
  return (
    <div>
      <ForwardComponent ref={hello}>Hello</ForwardComponent>
    </div>
  );
}

注意:我可以在这里使用上下文api或redux,但我认为在我的用例中应该更简单。我也学到新东西

0 个答案:

没有答案