ReactJS so fügen Sie eine Karte mehr/weniger Taste

Ich bin neu, zu Reagieren und zu möchte ich hinzufügen, dass ein einfaches "mehr Anzeigen" - button in meiner Anwendung. Ich habe ein array mit Daten, wo ich will, um zu zeigen, 3 Einträge als Vorgabe. Wenn ein Benutzer klickt auf show more, der rest der Daten dargestellt werden soll, und die Schaltfläche sollte den text ändern in show less. Ich bin mir nicht genau sicher, wie es zu tun.

Dies ist, was ich so weit gekommen:

class Application extends React.Component {
  constructor() {
    super()

    this.cars = [
     { "name" : "Audi", "country" : "Germany"},
     { "name" : "BMW", "country" : "Germany" },
     { "name" : "Chevrolet", "country" : "USA" },
     { "name" : "Citroen", "country" : "France" },
     { "name" : "Hyundai", "country" : "South Korea" },
     { "name" : "Mercedes-Benz", "country" : "Germany" },
     { "name" : "Renault", "country" : "France" },
     { "name" : "Seat", "country" : "Spain" },
   ]

   this.isLoaded = false

  }

  showMore() {
   //show more entries
   //switch to "show less"
  }

  render() {
    return <div className="container">
     <h3>Click show more to see more data</h3>
     <div className="row">
       <h3>List of Cars</h3>
       <ul>
         {this.cars.slice(0,3).map((car, i) => <li key={i}>{car.name} - {car.country}</li>)}
       </ul>
     </div>
     <p>
      <a className="btn btn-primary" onClick={this.showMore()}>Show more</a>.
     </p>
   </div>;
  }
}

React.render(<Application />, document.getElementById('app'));

Hier ist ein JSBin mit dem code in Aktion

Kann mir jemand helfen?

  • isLoaded sollte in Ihrem Bundesland. Aktualisieren Sie Ihr rendering, rufen Sie setState. Sie hätten einen "Staat.itemNumber", dass Sie das update auf die Länge, wenn Sie anrufen showMore. In Ihrem JSX, slice (0, Zustand.itemNumber) und du bist gut
InformationsquelleAutor ST80 | 2017-06-05
Schreibe einen Kommentar