2017-12-27 7 views
0

反応し、Object.keys内部に、未定義のプロパティ 'SETSTATE' を読み取ることができません:は、私が使用している

class Form extends Component { 

    constructor(props) { 
    super(props); 

    this.state = { 
     disabledFields: [], 
    }; 

    } 

    executeCode = (methodCode ='', params = {}) => { 
    const result = crudCode[methodCode](params); 
    if (result && result.newStates) { 

     Object.keys(result.newStates).map(function(keyName, keyIndex) { 
      this.setState({ nada: 'nada' }); 
     }); 
    } 
    } 

I:method =() => { }はので、私は機能ここ

にバインドする必要はありませんすることは私のクラスです私が間違ってやっている

TypeError: Cannot read property 'setState' of undefined 
> 48 |   this.setState({ nada: 'nada' }); 

、私はすでに機能してSETSTATEのこのタイプを使用しましたが、私はそれが動作しない、この時間を知っていない:このエラーが発生します。

+1

可能な重複[?コールバックの内側に正しい\ 'この\'をアクセスする方法](https://stackoverflow.com/questions/20279484/how-to - アクセス - 正しい - これはコールバックの内側に) – Li357

答えて

4

あなたmapコールバックで矢印機能を使用しないでください。

Object.keys(result.newStates).map(function(keyName, keyIndex) { 
    this.setState({ nada: 'nada' }); 
}); 

だから、それはthisにバインドされていません。

これは、代わりに動作します:

Object.keys(result.newStates).map((keyName, keyIndex) => { 
    this.setState({ nada: 'nada' }); 
}); 
+0

あなたが気にしないなら、重複としてマークするためにあなたのゴールドバッジを使用できますか? – Li357

関連する問題