2017-03-18 13 views
0

なぜ外部変数でクラスの状態を設定できるのですか?外部変数から状態を設定する - React.js

私のhtmlファイルでは、iveは既に私が反応クラスを介して呼び出している配列を持っています。すなわちwindow.fbApiResponse

それから私は、次のことを実行しよう -

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. 

    }, 

状態が設定され、コンソールにログインしたときに、空の応答を返しません。

+0

最初の戻り「【課題】」及び第2「オブジェクト」 – SK2017

+1

状態をオブジェクト/配列への参照であってはなりません。配列を最初にクローンする必要があります。それを状態に設定します。 –

答えて

0

setStateをcomponentDidMountメソッドで実行することは悪いことです。 代わりに専用の方法を使用して状態を設定する必要があります。 さらに、最初のレンダリング後に状態を設定する必要があるのはなぜですか?あなたは小道具としてそれを渡すことはできませんか?

代わり配列のクローンを作成してみてください:

// code.... 
const fb_api_nodes = window.fbApiResponse.splice(0); 
// code... 
関連する問題