Reactjs:未处理的拒绝(TypeError):无法读取未定义的属性“map”

时间:2017-12-08 18:50:21

标签: reactjs django-rest-framework

我的代码出了什么问题?

import React, { Component } from "react";
// import {connect} from 'react-redux';
// import List_items from './list_items';



// @connect(item => ({data: state.example.data}))
class Home extends React.Component {

  constructor(){
    super();
    this.state = {
      dataOperations: [],
    };
  }

  componentDidMount(){

    fetch('http://127.0.0.1:8000/Selectallbarang/?format=json')
   .then(results => { 
    return results.json();
      }).then(data => {
          let dataOperations = data.results.map((idk) => {
            return(
              <h1 key={idk.results}>

              {idk.harga_satuan}

              </h1>
              )
          })
         this.setState({dataOperations: dataOperations});
         console.log("state", this.state.id);
        })
      }

我收到如下错误代码

未处理的拒绝(TypeError):无法读取未定义的属性“map” (匿名函数)

C:/Users/kurniawan/django/shemura/frontend/src/home/Home.js:23
  20 |   .then(results => { 
  21 |    return results.json();
  22 |      }).then(data => {
> 23 |          let dataOperations = data.results.map((idk) => {
  24 |            return(
  25 |              <h1 key={idk.results}>
  26 | 

查看已编译 此屏幕仅在开发中可见。如果应用程序在生产中崩溃,则不会显示。 打开浏览器的开发者控制台以进一步检查此错误。

1 个答案:

答案 0 :(得分:4)

data.results.map替换为(data.results || []).map

因为此错误意味着data.results未定义,所以data.results.map是属性(方法)无法从未定义的内容中读取。

有很多方法可以解决这个问题,但是,我认为我给了你最强烈的优雅方式。