如何从json端点axios将单个对象保存为状态

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

我是一个新手,要做出反应。我试图将一个对象从JSON端点保存到我的react组件的状态。我肯定在响应中返回JSON数据。但是它并没有保存到状态中,您能看到我要去哪里了吗?

  // State needed for the component
  constructor(props) {
    super(props);
    this.state = {
      profile: {},
    };
  } 

 // Grabs profile data from the json url
  private getProfile() {
    let config = {
      headers: {'Authorization':'Bearer AQVVEqNXTWV....'}
    }
    axios
      .get("https://cors-anywhere.herokuapp.com/" + "https://api.linkedin.com/v2/me", config)
      .then(response => 
          response.data(profile => ({
            id: `${ profile.id }`
         }))
        )
        .then(profile => {
          this.setState({
            profile
          });
        })
      // We can still use the `.catch()` method since axios is promise-based
      .catch(error => this.setState({ error, isLoading: false }));
  }

返回JOSN数据:

{
    "localizedLastName": "King",
    "id": "fm0B3D6y3I",
    "localizedFirstName": "Benn"
}
reactjs
2个回答
0
投票

您的第一个然后是块看起来是错误的。

尝试在此处执行console.log:

.then(response => {
  console.log(response); // I am sure that you will get profile inside response.data or something similar
  return response.data(profile => ({
    id: `${ profile.id }`
  }));
})

0
投票

然后尝试删除第二个,像这样:

  axios
   .get("https://cors-anywhere.herokuapp.com/" + "https://api.linkedin.com/v2/me", config)
    .then(response => {response.data(profile => {this.setState({ profile });
    })
   }))
© www.soinside.com 2019 - 2024. All rights reserved.