2017-03-18 1 views
0

왜 외부 변수를 사용하여 클래스의 상태를 설정할 수 있습니까?외부 변수에서 상태 설정 - React.js

그래서 내 HTML 파일에서 ive는 이미 반응 클래스를 통해 호출하고있는 배열을 가지고 있습니다. 상태가 설정되지 않습니다

var App = React.createClass({ 

    getInitialState: function() { 

    return { 
     fb_api_nodes: [] 
    } 

    }, 

    componentDidMount: function() { 
     // console.info(this.state.jobs); 
     console.info(window.fbApiResponse); // Returns array to console 
      const fb_api_nodes = window.fbApiResponse; 
      this.setState({ fb_api_nodes }); 

      console.log("state"); 
      console.log(this.state); // Returns empty array to console. 

    }, 

, 그리고 콘솔에 로그인 한 빈 응답을 반환 - 즉 window.fbApiResponse

그런 다음 나는 다음과 같은 실행 해보십시오.

+0

제 복귀 '[대상] 및 제'객체 – SK2017

+1

상태 객체/어레이에 대한 레퍼런스이어야한다. 배열을 먼저 복제해야합니다. 그런 다음 상태로 설정하십시오. –

답변

0

setState를 componentDidMount 메서드에 적용하는 것은 좋지 않은 방법입니다. 대신 전용 메서드를 사용하여 상태를 설정해야합니다. 또한 왜 첫 번째 렌더링 후에 상태를 설정해야합니까? 소품으로 넘겨 줄 수 없어?

대신 배열을 복제하려고 :

// code.... 
const fb_api_nodes = window.fbApiResponse.splice(0); 
// code...