子组件
import React, { useImperativeHandle, forwardRef } from "react"
let Child = (props, ref) => {
useImperativeHandle(ref, () => ({ // 暴露给父组件的方法
getInfo,
refreshInfo: () => {
console.log("子组件refreshInfo方法")
}
}))
const getInfo = () => {
console.log("子组件getInfo方法")
}
return (
<View>子组件</View>
)
}
Child = forwardRef(Child)
export default Child
父组件
import React, { Component } from 'react'
import Child form './Child'
export default class Parent extends Component {
constructor(props) {
super(props)
this.childRef = Taro.createRef()
}
getChildCallback = () => {
this.childRef.current.getInfo && this.childRef.current.getInfo()
this.childRef.current.refreshInfo && this.childRef.current.refreshInfo()
}
return (
<View>
<View onClick={this.getChildCallback.bind(this)}>触发子组件方法</View>
<Child ref={this.childRef} />
</View>
)
}