console.log(this.state); // 正しく取得できる
setTimeout(function () {
console.log(this.state); // undefined
}, 1000);
【結論】thisを確定させる
setTimeout内では、関数の呼び出し元がグローバルオブジェクトになるので、thisを確定させる必要があります。
.bind(this)を使う
setTimeout(function () {
console.log(this.state); // 正しく取得できる
}.bind(this), 1000);
アロー関数を使う
setTimeout(() => {
console.log(this.state); // 正しく取得できる
}, 1000);