1

在发送对我的 REST API 的调用之前使用对象解构来破坏我的状态,它只适用于我的箭头函数内部。我尝试在常规函数中调用它,但一直收到未定义的错误消息。代码示例如下

我在子组件中调用该函数,我不确定这是否会有所不同。非常感谢您的帮助,以便我可以学习这个概念,谢谢!

代码我不明白为什么它会破坏

async get() {
 const { userData } = this.state
 try {
  const response = await http.get('/v1', {
    userData
  })
  console.log('response', response);
  await this.setState({friends: response.data});
 } catch(err) {
  console.log("error getting friends ", err);
 }
}

**有效的代码**

get = async () => {
 const { userData } = this.state
 try {
  const response = await http.get('/v1', {
    userData
  })
  console.log('response', response);
  await this.setState({friends: response.data});
 } catch(err) {
  console.log("error getting friends ", err);
 }
}
4

1 回答 1

0

我认为您的代码由于this关键字而无法工作。在javascript中理解这个关键字

让它发挥作用。您可以在类的构造函数中绑定方法。例如。

class Example {

  constructor(){
    // ...
    this.get = this.get.bind(this); // Or bind the method that you call get method
  }

  async get() {
   const { userData } = this.state
   try {
    const response = await http.get('/v1', {
      userData
    })
    console.log('response', response);
    await this.setState({friends: response.data});
   } catch(err) {
    console.log("error getting friends ", err);
   }
  }
}
于 2019-03-01T01:45:12.087 回答