2017-05-23 3 views
0

ich durch meine achievements Requisiten bin Looping eine Reihe von div-Tags angezeigt werden:Get json Wert von array.map

const listItems = this.props.todo.achievements.map((achievement) => 
    <div className="cell" key={achievement.id}> 
    {achievements[achievement.id].label} 
    </div> 
);` 

Wie kann ich das Etikett aus einem json ziehe ich aus einer lokalen Datei bin importieren?

{ 
"achievements":[ 
    { 
    "label":"one", 
    "id":0 
    }, 
    { 
    "label":"two", 
    "id":1 
    }, 
    { 
    "label":"three", 
    "id":2 
    }, 
    { 
    "label":"four", 
    "id":3 
    }, 
    { 
    "label":"five", 
    "id":4 
    }] 
} 

In meinem Stammminderer habe ich meinen Anfangszustand, der die Leistung speichert id.

Wenn ich {achievement} ausgabe, bekomme ich nur die Nummer. Sollte ich meinen intital Status setzen, um das Label zu speichern, anstatt es in einer lokalen JSON-Datei zu speichern?

const initialState = [ 
    { 
    date: "Fri 1st", 
    enjoyments: [1,2,3], 
    achievements: [1,3,2], 
    id: 0 
    }, 
    { 
    date: "Fri 2", 
    enjoyments: [1,3,2], 
    achievements: [1,3,2], 
    id: 1 
    }, 
+0

Wie @felix sagte, sollten Sie Zugriff haben auf die label -Eigenschaft in der Karte Callback, wollte nur darauf hinweisen, dass die "Achievements" -Array ist derzeit ein Tippfehler in Ihrem json => "achievementa" – abhi

Antwort