代码之家  ›  专栏  ›  技术社区  ›  Devin Bowen

如何在reactjs中渲染对象

  •  1
  • Devin Bowen  · 技术社区  · 8 年前

    我无法拖动状态中的对象并将其显示在网页上。它在网页上的显示方式并不重要,我只是想知道如何查看它。

    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>
        );
      }
    }

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

    0: {…}
    avalable: true
    date: "1-1-1"
    dentist: "dentist_test"
    id: 1
    name: "dentist_test"
    office: "test_office"
    time: "01:01:01"
    2 回复  |  直到 8 年前
        1
  •  1
  •   Chris West    8 年前

    除非我遗漏了什么,否则放下控制台。登录JSX,应该是:

    {this.state.avalable}
    

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

    {this.state.avalable.dentist}
    
        2
  •  0
  •   Devin Bowen    8 年前

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

    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>
        );
      }
    }