react父组件调用子组件的方法

图片描述我想调用子组件的方法,可打印的时候并没有找到子组件的方法图片描述

阅读 10.8k
2 个回答

你用 state 上的 shouldhide 判断显示不同部分。

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

还有,如果想在调用 setState 后就做一些跟 state 相关的操作时,应该等 setState 结束之后再做。

由于 setState 是一个异步操作,所以不能按图上同步操作,应该像下面这样:

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)
    })
}

shouldhide 你设置为false后,渲染的是if里面的数据,if里面没有ref

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题