【问题标题】:how do I render an object in reactjs如何在 reactjs 中渲染对象
【发布时间】:2018-01-16 18:31:44
【问题描述】:

我无法拉出我处于状态的对象并将其显示在我的网页上。它在网页上的显示方式并不重要,我只想弄清楚到目前为止如何查看它。

import React, { Component } from 'react';
import {Link} from 'react-router-dom';
import axios from 'axios'
const test = require('../controller')

export default class Calandar extends Component {
  constructor(props) {
    super(props)

    this.state = {
      avalable: {},
      unavalable: {}
    }

  }


  componentDidMount() {
    axios.get('/api/avalable').then(res => {
      // console.log(res.data)
      this.setState({avalable: res.data})
    })
  }




  render() {
    return (
      <div>
        Calandar.js
      <div>
        {console.log(this.state.avalable)}
      </div>
      </div>
    );
  }
}

这是我通过从数据库执行获取请求保存的数组。

0: {…}
avalable: true
date: "1-1-1"
dentist: "dentist_test"
id: 1
name: "dentist_test"
office: "test_office"
time: "01:01:01"

【问题讨论】:

  • 您在控制台中遇到的错误是什么?
  • JSX 中的 console.log() 将不起作用,因为它返回 undefined,您可以尝试 {JSON.stringify(this.state.avalable)},然后渲染每个条目,您可以使用 map功能。

标签: javascript reactjs object get render


【解决方案1】:

除非我遗漏了什么,否则将 console.log 放到你的 JSX 中,应该是:

{this.state.avalable}

但更具体地说,如果您希望牙医姓名从对象中显示出来,请使用:

{this.state.avalable.dentist}

【讨论】:

  • 我已经尝试过了,但它没有显示任何内容,甚至没有发送错误
  • 如果你取消注释“//console.log(res.data)”,你确实得到了一个对象?我不熟悉 axios Promise 返回的内容。
【解决方案2】:

我找到了答案,我只是把它放在一个数组而不是一个对象中 这是完整的代码,谢谢

import React, { Component } from 'react';
// import {Link} from 'react-router-dom';
import axios from 'axios'

export default class Calandar extends Component {
  constructor(props) {
    super(props)

    this.state = {
      avalable: [],
      unavalable: []
    }

  }


  componentDidMount() {
    axios.get('/api/avalable').then(res => {
      // console.log(res.data)
      this.setState({avalable: res.data})
    })
  }




  render() {
    console.log(this.state.avalable)
    var availabeList = this.state.avalable.map(available => (<div key={available.id}>
      {available.dentist}
    </div>))
    return (
      <div>
        Calandar.js
      <div>
        
        {availabeList}
      </div>
      </div>
    );
  }
}

【讨论】:

  • 我知道这不是我要问的,但它适用于我的场景
猜你喜欢
  • 2017-10-23
  • 1970-01-01
  • 2017-05-19
  • 2021-12-27
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2021-09-14
  • 2020-07-02
相关资源
最近更新 更多