无法读取Object.keys中未定义的属性“ setState”,做出反应

DDa*_*ave 0 javascript reactjs

我正在使用:method = () => { }所以我不需要绑定功能

这是我的课:

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' });
        });
    }
  }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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

我做错了什么,我已经使用过这种类型的函数和setState,但是我不知道这一次它不起作用。

Dav*_*yon 5

您不在map回调中使用箭头功能:

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

因此,它不限于this

它将改为:

Object.keys(result.newStates).map((keyName, keyIndex) => {
    this.setState( {  nada: 'nada' });
});
Run Code Online (Sandbox Code Playgroud)