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을 사용하십시오.

관련 문제