我正在使用: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,但我不知道这次它不起作用。
您不在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' });
});