2016-11-20 16 views
0

我已經在我的JSX文件,並在構造函數中創建了一個陣營成分,我有:我們如何將數據傳遞給this.state - React.js?

this.state = {data: [[200,100],[50,60],[100,300]] }; 

這是完全沒問題。它運行良好。

但是,如果我補充一下:

this.state = {linedata: [{x:200,y:100},{x:50,y:60},{x:100,y:300}] }; 

我得到:

d3.js:265 Uncaught TypeError: Cannot read property 'length' of undefined 

我很失落,爲什麼是這種情況。數據是否應該以某種方式進行格式化?

回答

1

在React中,每個組件的state都是一個簡單的JavaScript對象。在第一個示例中,由於您說組件呈現效果良好,因此您的組件似乎利用this.statedata屬性。

如果將其更改爲this.state.linedata,this.state.data將爲undefined。您應該更新組件以從this.state.linedata而不是this.state.data中讀取。

更多關於如何在代碼中編寫render函數和使用d3的方法的示例有助於爲您提供更精確和有用的答案。

2

您是否嘗試在初始分配後重新分配this.state?您不應該手動設置組件狀態;改爲使用this.setState