从具有本机反应的父级调用子方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从具有本机反应的父级调用子方法相关的知识,希望对你有一定的参考价值。

我知道这是一个非常普遍的问题,但是我在互联网上发现的一些答案已被弃用。您如何在2020年从父组件中调用子组件的方法?我的实际代码是这样的,但是不起作用

儿童:

export default class CustomComp extends React.Component
  exampleMethod = () => 
    console.log('pressed');
  ;

  render()
    return (
      ...
    );
  

父母:

export default class App extends React.Component
  child = CustomComp;
  render()
    return (
      <View style=styles.container>
        <Button title="Press" onPress=this.child.exampleMethod />
        <CustomComp ref=child => this.child = child ...this.props />
      </View>
    );
  

答案

您必须将函数作为回调调用。

export default class App extends React.Component
  render()
    return (
      <View style=styles.container>
        <Button title="Press" onPress=() => this.child.exampleMethod() />
        <CustomComp ref=child => this.child = child ...this.props />
      </View>
    );
  

以上是关于从具有本机反应的父级调用子方法的主要内容,如果未能解决你的问题,请参考以下文章

当子点击事件命中时反应从父组件获取数据

在更改方法上使用输入子级反应控制父级状态

在值上反应调用父元素的子元素

将传递 onPress 的本机反应与值

使用 useRef 从 Reactjs 中的父级调用子函数

反应父母对孩子道具传递而不重新渲染