如何在反应中绑定来自API的数据?

时间:2019-12-03 09:03:39

标签: javascript reactjs axios

我是React.JS的新手。我想将来自API的数据绑定为HTML代码。
这是API中使用axios的GET方法:

componentDidMount() {
    var token = localStorage.getItem('accessToken');
    var config = {
        headers: { 'Authorization': "Bearer " + token }
    };
    var apiBaseUrl = "https://**********/";
    const that = this;
    axios.get(apiBaseUrl + 'api/Account/UserInfo', config)
        .then(function (response) {
            console.log(response.data);
            if (response.status === 200) {
                that.setState({ userInfo: response.data });
                console.log(that.state.userInfo.Email);
            }
            else {
                console.log(response.data);
            }
        })
        .catch(function (error) {
            console.log(error);
        });
}

控制台显示我

  

{Email: "xxxxxxx@yahoo.com", HasRegistered: true, LoginProvider: null}

现在,我想以HTML显示电子邮件地址。我该怎么办?

3 个答案:

答案 0 :(得分:1)

在这里设置状态

 that.setState({ userInfo: response.data });

要访问它-尝试this.state.userInfo.Email

您可以将其放入类似这样的html元素中

<p>{this.state.userInfo.Email}</p>

答案 1 :(得分:0)

在JSX中,您可以这样显示

render(){
  return (
    <p>{this.state.userInfo ? this.state.userInfo.Email : 'Email is not provided'}</p>
  )
}

答案 2 :(得分:0)

您只需定义JSX

render(){
const email = this.state.userInfo? this.state.userInfo.Email:'';
return(
  <div>{email}</div>
 )
}