1

在 MEAN Stack 中从 db 向前​​端获取信息时遇到问题。我尝试使用 axios 插件来获取数据,但没有显示。这是代码: 个人资料页

这是我在 mongodb 中的数据: mongodb

我如何向这部分显示信息(例如:用户名)?

<div className="user-details">
   <tr>
     <th>Username: </th>
     <th></th>
   </tr>
</div>
4

3 回答 3

0

您可以像下面这样使用,将标头添加到您的 axios 请求中,设置 'crossDomain': true 以克服 cors 错误。

export default class Profile extends Component{
  constructor(props){
    super(props);
    this.state = {
      users: []
    }
  }

  conmponentDidMount(){
    axios.get('/api/account/profile',{ headers: { 'crossDomain': true, 'Content-Type': 'application/json' } })
    .then(res=> {
      this.setState({ users: res.data }).then(profileState => {
        console.log(JSON.stringify(this.state.users))
      }); //It sets the state asynchronously
    })
  }

  render(){
    <div>
      <div className="user-details">
        {
           this.state.users.map(user => 
             <tr>
               <td>Username: </td>
               <td>{user.name}</td>
             </tr>
           )
        }
      </div>
    </div>
  }
} 
于 2018-06-19T10:17:35.797 回答
0

谢谢,实际上我只是使用this.state.user.name没有映射来从数据库中显示

<strong>Name:</strong>{this.state.user.name}<br/>

在 api 中,我在 url 中获取用户 ID,以从会话中获取当前用户/活动用户。

axios.get('/api/account/profile/info?id=' +id)
  .then(res => {
     this.setState({ user: res.data.user });
 })
于 2018-06-22T10:01:50.293 回答
0

我不确定您的问题到底是什么,您将用户设置为一个数组,但在渲染方法中您将其视为“文本”,尝试使用 map 方法迭代每个用户并显示每个用户的信息,如果你从您的 API 获取信息时遇到问题,尝试在客户端 package.json 中设置代理到 API 端口,并在反应 ComponentDidMount 生命周期中使用操作。

于 2018-06-19T08:56:16.423 回答