JS实现父组件调用子组件内函数

一般比较多的是子组件调用到父组件

父组件调用子组件用的比较少

父组件:

 import Enclosure from './component/enclosure';//引入子组件
 let childRef : any = null

  handleChildEvent = (ref  : any) => {//用于在子组件中调用  将子组件的this保存在父组件中
    console.log(ref,'this指向的东西')
  	// 将子组件的实例存到 this.childRef 中, 这样整个父组件就能拿到
    childRef = ref
  }
  click=()={//这个函数就可以调用到子组件内sendMessage函数
     childRef.sendMessage()
  }
   render() {
      <Enclosure onChildEvent={this.handleChildEvent}/> //显示子组件
  }


子组件:

interface Props extends FormComponentProps {
  onChildEvent : any;
}


  componentDidMount()//在子组件渲染阶段,将子组件this通过父组件的onChildEvent函数,将子组件内的this保存在父组件中
    this.props.onChildEvent(this) 
  }
React函数组件是一种轻量级的组件编写方式,它使用JavaScript直接定义组件的行为,而不是像类组件那样通过`class`关键字。在函数组件内部,你可以使用`props`来向组件传递数据,然后在组件的`methods`中定义需要被组件调用的方法。 假设有一个简单的组件`ParentComponent`,它有一个组件`ChildComponent`,组件有一个名为`callMeFromParent`的方法: ```jsx // 组件 ParentComponent.js import React from 'react'; import ChildComponent from './ChildComponent'; const ParentComponent = ({ childData }) => { const callChildMethod = () => { // 调用组件的方法 if (childData && childData.callMe) { childData.callMe(); } }; return ( <div> <ChildComponent data={childData} /> <button onClick={callChildMethod}>Call Child Method</button> </div> ); }; export default ParentComponent; ``` 在这个例中,`ParentComponent`通过`data`属性将数据传给`ChildComponent`。当点击按钮时,组件的`callChildMethod`方法会被调用,如果`ChildComponent`接收到的数据(`childData`)中包含`callMe`方法,那么这个方法就会被执行。 组件`ChildComponent`: ```jsx // 组件 ChildComponent.js import React from 'react'; const ChildComponent = ({ data }) => { const callMe = () => { console.log('Called from parent!'); }; return ( <div> {/* 其他组件内容 */} <button onClick={() => callMe()}>This will be called</button> </div> ); }; export default ChildComponent; ``` 在`ChildComponent`中,我们定义了`callMe`方法,并在内联函数里提供了一个点击事件处理,这样当组件调用时,会触发组件的相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值