你用 state 上的 shouldhide 判断显示不同部分。 当 shouldhide 为 true 时,是不显示后半部分的。所以你取不到 this.refs.test 的。 还有,如果想在调用 setState 后就做一些跟 state 相关的操作时,应该等 setState 结束之后再做。 由于 setState 是一个异步操作,所以不能按图上同步操作,应该像下面这样: this.setState({ shouldhide: true }, () => { console.log(this.refs.test) }) 而实际上,只有当 shouldhide 为 false 时,你才能取到 this.refs.test。 把 BasicEdit 修改成下面这样试试: BasicEdit = () => { this.setState({ shouldhide: true }, () => { setTimeout(() => { console.log(this.refs.test) }, 500) }) }
你用
state
上的shouldhide
判断显示不同部分。当
shouldhide
为true
时,是不显示后半部分的。所以你取不到this.refs.test
的。还有,如果想在调用
setState
后就做一些跟state
相关的操作时,应该等setState
结束之后再做。由于
setState
是一个异步操作,所以不能按图上同步操作,应该像下面这样:而实际上,只有当
shouldhide
为false
时,你才能取到this.refs.test
。把
BasicEdit
修改成下面这样试试: