javascript - map 函数reactjs出错

标签 javascript reactjs

我的 map 功能出现错误。我不知道可能是什么原因,但它说 this.state.rooms.map 不是一个函数。我已经从 api 获取数据并推送到一个空列表中。列表已成功更新内容,但无法对其应用 map 功能。

这是我的代码

import React from 'react';
import ReactDOM from 'react-dom';


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

    componentDidMount(){
        console.log('componentDidMount');
        this.loadRoomFromServer();
    }

    loadRoomFromServer(){
        $.ajax({
            url:'/api/v1/rental/',
            dataType:'json',
            success: (data) => {
                this.setState({rooms: data});
              },
              error: (xhr, status, err) => {
                console.error(url, status, err.toString());
              }
            });
    }

    render(){
        console.log('rooms',this.state.rooms);
        let listOfRoom = this.state.rooms.map((room)=>{
            return(
                    <Room key={room.id} name={room.listingName} price={room.price} number={room.room} />
                )
        });
        return(
                <div className="container-fluid">
                    <div className="row">
                            { listOfRoom }
                    </div>
                </div>
            )
    }
}

class Room extends React.Component{
    render(){
        return(
                <div className="col-md-4">
                    <h2>{this.props.name}</h2>
                    <p>{this.props.price}</p>
                    <p>{this.props.number}</p>
                </div>
            )
    }
}

我在控制台上得到的是

房间[]

组件DidMount

房间对象{设施:“厨房,电缆”,城市:“城市”,电子邮件:“tushant@gmail.com”,listingName:“tushant”,ownerName:“tushant”…}

未捕获类型错误:this.state.rooms.map 不是函数

最佳答案

正如 @sfletche 提到的 map 函数仅适用于数组。 将您的成功回调更改为

success: (data) => {
    this.setState({rooms: data.objects});
 },
 error: (xhr, status, err) => {
    console.error(url, status, err.toString());
  }
});

关于javascript - map 函数reactjs出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35650943/

相关文章:

javascript - 如何使用 jquery ajax 向 php 页面发送异步请求

javascript - 创建 react 应用程序时出现此错误 : Cannot find module './lib/pack.js'

reactjs - 如何向作为变量传递的 react 组件添加属性?

javascript - 两个数值之间的正则表达式

javascript - javascript 中 Math.cos 函数将度数转换为弧度时出现问题

javascript - Calendar.createEventAsync 仅在 Android 博览会上崩溃

javascript - 当网格上面的内容被隐藏时,如何向上滑动网格?

javascript - 一切正常,但是当我单击编辑按钮时,每次都会添加一个逗号 (,)。我不会发现哪里出了问题?

javascript - 之前的 HTML5 输入范围样式

javascript - 没有命名空间污染的模块化客户端 Javascript 的方法