2017-05-08 2 views
2

ein jsbin Erstellt um den Fehler Demo, können Sie den Fehler hier https://jsbin.com/muhuxunome/1/edites2015 Karte unterstützt Array von Objekt nicht?

class Hello extends React.Component { 
    render() { 
    const normalizedStats = [ 
    { 
    "name": "Confirmed", 
    "count": 7 
    }, 
    { 
    "name": "Unprocessed", 
    "count": 2 
    }, 
    { 
    "name": "Not Suitable", 
    "count": 9 
    }, 
    { 
    "name": "Shortlisted", 
    "count": 17 
    } 
]; 

    return(
      <div> 
      normalizedStats.map(obj => 
       <li>{obj.name} ({obj.count})</li> 
      ) 
      </div> 
     ) 
    } 
} 

Ich habe Fehler von obj sehen, ist nicht definiert? Ich habe versucht, die Karte von lodash funktioniert, nicht sicher, warum die Karte von es2015 hier einen Fehler hat.

+0

einen Schlüssel für die retuned JSX Elemente von Karte

{normalizedStats.map(obj => <li key={obj.name}>{obj.name} ({obj.count})</li> )} 

-Code das Hinzufügen Was ist der Fehler? Bitte posten Sie es mit Ihrer Frage. – Bergi

+0

Bitte zeigen Sie den lodash-Code, der funktioniert hat. – Bergi

Antwort

1

Sie haben vergessen, die "{}"

return (
    <div> 
     {normalizedStats.map((obj, index) => { 
      return <li key={index}>{obj.name} ({obj.count})</li>; 
     })} 
    </div> 
); 
1

Sie müssen geschweifte Klammern verwenden, wenn Sie JavaScript Interpolation in Ihrem JSX tun wollen.

ändern

normalizedStats.map(obj => 
    <li>{obj.name} ({obj.count})</li> 
) 

zu

{normalizedStats.map(obj => 
    <li>{obj.name} ({obj.count})</li> 
)} 
+0

Wie sortiere ich, wenn ich es in meinem Array von Objekten habe? https://pastebin.com/raw/HtCc6pXT –

1

Wickeln Sie die Karte Ergebnis innerhalb {}. Sie müssen das tun, um Ihre Elemente in JSX zu rendern. sollte idealerweise auch mit Sortier

class Image extends React.Component { 
    render(){ 
    return <img className="center" {...this.props} />; 
    } 
} 

Image.propTypes = { 
    src: React.PropTypes.string.isRequired 
}; 

class Hello extends React.Component { 
    render() { 
    const normalizedStats = [ 
    { 
    "name": "Confirmed", 
    "count": 7 
    }, 
    { 
    "name": "Unprocessed", 
    "count": 2 
    }, 
    { 
    "name": "Not Suitable", 
    "count": 9 
    }, 
    { 
    "name": "Shortlisted", 
    "count": 17 
    } 
]; 
    normalizedStats.sort(function(a, b) {return a.count - b.count}) 
    return(
      <div> 
     {normalizedStats.map((obj) => { 
       return <li key={obj.name}>{obj.name} ({obj.count})</li> 
      } 

      )} 
      </div> 
     ) 
    } 
} 

class App extends React.Component{ 
    constructor(props) { 
    super(props); 
    this.state = { 
     name: 'JSBin' 
    }; 
    } 

    render() { 
    return (<div className="app"> 
     <Hello /> 
     </div>); 
    } 
} 

ReactDOM.render(<App />, document.getElementById('app')); 

JSBIN

+0

wie mit sort zu ketten? sagt, ich habe https://pastebin.com/raw/HtCc6pXT –

+0

Sie nicht Kette, Sie sortieren und dann zuordnen, können Sie es in der Render-Funktion tun. Auf welcher Basis wollen Sie sortieren –

+0

überprüfen Sie die aktualisierte Antwort –

Verwandte Themen