2017-10-20 70 views
0

我引用AmChart像这样:AmChart引用属性'chart'在打印引用对象时不为null,但在尝试访问state.chart时'chart'属性变为null?

ref={(e) => {if (e) {this.ch = e}}} 

当我打印componentDidMountthis.ch,我可以看到属性state存在,并且chart属性不为空。但是,当我尝试访问this.ch.state.chart时,它为空。当我在打印this.ch的前一个控制台日志之后立即打印this.ch.state时,chart属性将为空。为什么当我尝试访问该属性时该属性仅为空,但当我打印this.ch时,该属性仅为null?

编辑:

Screenshot of logs

+0

你在做console.logs?发布代码以便我们可以看到问题。根据你发布的内容,我不知道会发生什么。 –

+0

你在干什么? '国家'将不存在在裁判。一个ref是一个DOM元素。 –

+0

控制台日志位于componentDidMount中。 console.log(this.ch)将显示state.chart为NOT null,而console.log(this.ch.state)将显示图表为空。使用更新的截图查看问题。 – Biiiiiird

回答

0

无论上面的方法是访问chart的正确方法,您可以改用上AmCharts事件侦听器来访问图表并进行更改。在AmChart元素标记的'选项'下,添加一个监听器:

"listeners": [{ 
      "event": "rendered", 
      "method": (e)=>{e.chart.doSomething()}; 
      } 
    }] 
相关问题