2017-12-08 22 views
0

私のコードで何が間違っていますか?Reactjs:未処理の拒否(TypeError):未定義のプロパティ 'map'を読み取ることができません

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例外)のようなエラーコードを取得する:未定義 (匿名関数)のプロパティ 'マップ' を読み込めません

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 | 

この画面ではある をコンパイル見ます開発時にのみ表示されます。プロダクションでアプリがクラッシュした場合は表示されません。 このエラーをさらに調べるには、ブラウザのデベロッパーコンソールを開きます。

+0

フェッチしているjsonデータにresultsプロパティがありますか? – Cruiser

答えて

3

このエラーはdata.resultsが未定義であることを意味するので、その後data.results.mapプロパティ(メソッド)であるdata.results.map

(data.results || []).mapによって

を交換し、その未定義から読み取ることができません。

これを処理する方法はたくさんありますが、私はあなたに最もというエレガントなの方法を与えたと仮定します。

関連する問題