如何在React Native中从父级调用子级组件中的方法

时间:2019-11-29 19:17:48

标签: reactjs react-native mobx mobx-react

如何在React Native中从父级调用子级组件中的方法?我本质上想要做的是模拟componentDidMount()对功能组件中的类组件所做的事情。

我一直收到错误消息“无法给功能组件提供引用”,我可能想使用React.ForwardRef()

ps。 idk我将如何重新格式化儿童观察者,原谅格式错误

class Dashboard extends Component {
  constructor(props) {
    super(props);
    this.load = React.createRef();

  componentDidMount() {
     this.load.current.loadAudio();
  }

 render(){
      latestEP.query = ref => ref.orderBy("id", "desc").limit(1);

     return(
      {latestEP.docs.map(doc => (
       <DashboardItem key={doc.id} doc={doc} ref={this.load} />
       ))}
  )
 }
}

const DashboardItem = observer(({ doc }) => {
 function loadAudio(){
   return console.log("works")}

 return (// stuff that requires loadAudio to run first)
})

2 个答案:

答案 0 :(得分:0)

错误“函数组件不能被提供给引用”应该是不言自明的:您需要将DashItem更改为类组件而不是功能组件。

答案 1 :(得分:0)

您可以使用Lorem ipsum - dolor sit amet consetetur sadipscing - elitr sed diam nonumy 挂钩来实现。请检查一下: https://reactjs.org/docs/hooks-reference.html#useimperativehandle

useImperativeHandle中包装DashItem并实现forwardRef钩子,如下所示:

useImperativeHandle