2016-04-05 2 views
3

メインコンポーネントが設定されている場合は、setIntervalが必要です。 私は反応コンポーネントコンストラクタでのIntervalの設定方法は?

constructor(props) { 
    super(props); 
    this.props.fetchUserInfo(); 
    this.props.fetchProducts(); 
    setInterval(console.log('1'), 1000); 
    } 

またはcomponentDidMount

componentDidMount =() => { 
    setInterval(console.log('1'), 1000); 
    }; 

の内側のようなコンストラクタでそれを設定しようとしたが、それは常に一度 '1' を記録します。どのように間隔を正しく起動するのですか?

+0

別のもの:http://stackoverflow.com/q/4555656/218196。 –

答えて

8

setInterval(console.log('1'), 1000);通話console.log('1')setIntervalにその戻り値を渡し、正確な方法foo(bar())barを呼び出し、fooにその戻り値を渡します。

あなたがそれに関数のリファレンスを渡したい:

setInterval(function() { 
    console.log('1'); 
}, 1000); 

それとも、その関数内で同じになるようにthisを必要とし、まだES2015の構文を使用していない場合:

setInterval(function() { 
    console.log('1'); 
}.bind(this), 1000); 

Function#bindリターンをあなたがそれを与えるの値を使って元のものを呼び出す新しい関数です。

それとも、それが作成されますthisbindの必要はありませんを超える閉じますES2015構文

setInterval(() => { 
    console.log('1'); 
}, 1000); 

を使用している場合。

+0

ああ、すばやく答えてくれてありがとう、ちょうどその使い方を忘れてしまった。 – Syberic

関連する問題