鍍金池/ 問答/HTML/ react父組件調(diào)用子組件的方法

react父組件調(diào)用子組件的方法

圖片描述我想調(diào)用子組件的方法,可打印的時候并沒有找到子組件的方法圖片描述

回答
編輯回答
選擇

shouldhide 你設(shè)置為false后,渲染的是if里面的數(shù)據(jù),if里面沒有ref

2018年5月20日 02:13
編輯回答
萢萢糖

你用 state 上的 shouldhide 判斷顯示不同部分。

shouldhidetrue 時,是不顯示后半部分的。所以你取不到 this.refs.test 的。

還有,如果想在調(diào)用 setState 后就做一些跟 state 相關(guān)的操作時,應(yīng)該等 setState 結(jié)束之后再做。

由于 setState 是一個異步操作,所以不能按圖上同步操作,應(yīng)該像下面這樣:

this.setState({
  shouldhide: true
}, () => {
  console.log(this.refs.test)
})

而實際上,只有當 shouldhidefalse 時,你才能取到 this.refs.test。

BasicEdit 修改成下面這樣試試:

BasicEdit = () => {
    this.setState({
        shouldhide: true
    }, () => {
        setTimeout(() => {
            console.log(this.refs.test)
        }, 500)
    })
}
2017年6月25日 18:21