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

问题描述 投票:0回答:1

我正在使用: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' });
        });
    }
  }

我收到此错误:

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

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

javascript reactjs
1个回答
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' });
});
© www.soinside.com 2019 - 2024. All rights reserved.