componentWillMount(){
this.init()
}
init=async()=>{
await this.config()
}
config=()=>{
console.log(this)
console.log(this.refs)
//一些对option的操作
...
let config = Object.assign({}, this.state.option,
{
series: series
})
this.setState({option:config})
}
render(){
<View style={{flex:1,marginTop:20}}>
<Echarts ref="sectionChart" option={this.state.option} onPress={this.onPress} height={300} />
</View>
}
核心代码如上,使用的github上的react native sechart库,它基于webview完成echart4的集成。
console输出结果如下:
出现了一个很奇怪的现象:
虽然this中的refs有值,但是直接输出this.refs却为空。
把生命周期从componentWillMount换为componentDidMount
后,输出正常
参考react的生命周期图
怀疑refs对象是在初步render后生成的,但是为什么开始可以直接通过this输出来呢?
或者是宏任务和微任务的区别导致的吗?