2016-07-20 6 views
0

もう1つの初心者の質問があります。intro.jsonという外部のローカルファイルからいくつかのjsonデータをロードしようとしていますが、エラーdefault.map is not a functionが発生しています。私がここで間違っていることに関するアイデアは何ですか?外部ローカルjsonをリアクションとレンダリングにロード

私のデータは、私は私は外部ファイルとして他の場所ではなく、類似した何かをやっているので、うまくいくかもしれないと思った私はそうのようにインポートしています。この

{ 
    "company": "test", 
    "employees":[ 
    { 
      "firstName":"John", 
      "lastName":"Doe" 
    }, 
    { 
     "firstName":"Anna", 
     "lastName":"Smith" 
    } 
    ] 
} 

、のように見えます。

import React, {PropTypes} from 'react'; 
import data from './intro.json'; 

var dataList = data.map(function(dl, index) { 
    return (
     <li key={index}>{dl.company}</li> 
    ) 
}); 

.... 

答えて

0

使用json-loaderと輸入dataは、オブジェクトのインスタンスになります:横断し、マップには Object {company: "test", employees: Array[2]}

Object.entries(data).map(([key,value])=> { 
    if (Array.isArray(value)) { 
    //return array value representation 
    ... 
    } else { 
    //return normal value representation 
    return (
     <div>{key} : {value}</div> 
    ); 
    } 
}) 
+0

おかげで私はすでにJSON-ローダーを使用しています、私はそれが私の中で設定していますwebpackの設定、それは私が持っている問題を解決しません。 – Ash

+0

'data'は配列ではないオブジェクトを表します。たとえば、[Object.entries](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries)を使用してオブジェクトをトラバースするには、コードで答える – Igorsvee

+0

ああそう! ES2015ではobject.entriesがサポートされていません – Ash

関連する問題