2017-10-20 43 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()}; 
      } 
    }] 
相關問題