透過這樣的作法
可以讓其他元件與元件之間 互相 呼叫 或 操作內部 函式
A 父層
abc(v){
console.log(v)// value1
}
<ComponentA
funA={(ref) => this.abc(ref)}
/>
B 子層 ( ComponentA 內)
function(){
this.props.funA("value1")
}
將 ComponentA 傳遞至父層 再將 ComponentA 傳遞給 ComponentB
step1
ComponentA 物件
componentDidMount() {
this.props.onRef(this)
//把自己this透過 props 往上傳遞
}
step2 在父層接到 ComponentA回傳自己,
再將自己塞到 父層 state
funA(comp){
comp = this.setState({objA:comp})
}
<ComponentA
onRef={(comp)=>{this.funA(comp)}}
/>
<ComponentB
objA={this.state.objA}}
/>
step3
ComponentB 物件
let _objA = this.props.objA
if (_objA instanceof ComponentA) {
_objA.funDoSomething()
}