访问多节API/json时出现问题

dhxwm5r4  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(85)

我尝试在reactjs页面中显示以下JSON文件的所有部分:https://api.myjson.com/bins/cdres
下面是代码:

import React, { Component } from 'react';
import {render} from "react-dom";

class apps extends Component {
    
    state = { 
        data: {
            segments: [],
            totals: [],
        }
    }
    
    componentWillMount(){
        fetch('https://api.myjson.com/file', {
            method: 'GET',
            headers: {
                'Accept': 'application/json',
                'Content-type': 'application/json',
                'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiR3JlZyIsInVuaXF1ZV9uYW1lIjoiZ2dyYWZmIiwibmJmIjoxNTI0ODM5Nzc1LCJleHAiOjE1MjQ5MjYxNzV9.xhvdfaWkLVZ_HLwYQuPet_2vlxNF7AoYgX-XRufiOj0'
            },
        }
            
    
        ) /*end fetch */
        .then(results => results.json()) 
        .then(data => this.setState({ data: data }))   
      }

      
    render() {
        console.log(this.state.data);
        return (

                     <div className="clientContainer">
                            
                            {
                                this.state.data.segments.map( item =>( 
                                <div>
                                    <span> {item.clientName} </span>
                                    
                                </div>
                                ))
                            }
                            {
                                this.state.data.totals.map(item =>(
                                    <div>
                                        <span> {item.segmentType} </span>
                                        <span> {item.adjTotalSqrFt} </span>
                                    </div>
                                ))
                            }
                        </div> 
        );
      }
}

export default app;

字符串
.代码用于从JSON文件的段和总计部分消费数据,但我在从顶部部分获取ID和用户名时遇到了麻烦?

toiithl6

toiithl61#

maparray的一个函数。data是一个对象,而data.segments是一个数组。你需要修改代码如下

<div className="clientContainer">
  {
     this.state.data.segments.map( item =>( //change here
     <div>
        <span> {item.clientName} </span>
     </div>
  ))
  }
  </div>

字符串

vatpfxk5

vatpfxk52#

data是一个对象而不是一个数组,因此在其上调用map会触发错误。
只需执行this.state.data.segments.map(...),并将初始状态更改为

state = { data: { segments: [] } }

字符串

相关问题