2016-11-20 6 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オブジェクトです。あなたの最初の例では、コンポーネントのレンダリングがうまくいっていると言われているので、dataというプロパティがthis.stateのコンポーネントを使用しているようです。

this.state.linedataに変更すると、this.state.dataundefinedになります。おそらくthis.state.dataの代わりにthis.state.linedataから読み取るようにコンポーネントを更新する必要があります。

render関数をどのように記述したか、コードでd3を使用した方法の例は、より正確で有用な答えを与えるのに役立ちます。

2

最初の割り当て後にthis.stateを再割り当てしようとしていますか?コンポーネントの状態を手動で設定する必要はありません。代わりにthis.setStateを使用してください。

関連する問題