Ich bin neu bei ReactJS und eine Sache, an der ich arbeite, ist Paginierung. ReactJS ist ein großartiges Werkzeug, um komplexe UI-Ansichten zu erstellen, aber manchmal ist das Einfachste das Schwierigste. Ich könnte es in jQuery tun, aber ich möchte es mit React tun.ReactJs: Mehr Seitenumbruch Typ (append)
Grundsätzlich möchte ich einen "Mehr laden" Stil der Seitenumbruch, wo Elemente an den Körper (wie ein News-Feed) angehängt werden. In meinem Code mache ich eine Ajax-Anfrage, um die Daten zu erhalten, sie in eine Statusvariable zu setzen und dann das DOM zu rendern. Ich habe dies erfolgreich mit nur 1 Seite von Daten getan, weil ich eine neue Variable für Elemente erstellt habe.
Grundsätzlich weiß ich, wenn die Person auf "Load More" geklickt hat und dann verwende ich eine neue Variable, um die Daten zu speichern. Hier ist die Funktion machen:
render: function() {
var markup = [],
nextMarkup = [];
if(this.state.hasSuccess) {
markup = Object.keys(this.state.listings).map(function(value){
return (
<div className="property__item" key={value}>
blablabla
</div>
)
}, this)
if(this.state.newListings !== false) {
nextMarkup = Object.keys(this.state.newListings).map(function(value){
return (
<div className="property__item" key={value}>
blablabla
</div>
)
}, this)
}
} else {
markup.push(<p key="1">No results</p>)
}
return (
<div className="property__list--grid">
{ markup }
{ nextMarkup }
</div>
);
}
Wie Sie sehen können, bin ich den Code zu duplizieren, und ich konnte nicht einen Weg, es zu tun, die „React“ Stil. Ich möchte keine 10 Variablen erstellen, wenn der Benutzer noch 10 Mal auf "Mehr laden" klickt.
Wenn jemand helfen könnte, wäre das toll. Ich kann mir keine Lösung vorstellen, und sie verfolgt mich seit Tagen.
Vielen Dank.
Vielen Dank @ctrlplusb! Es ist fast fix. Das einzige, was noch zu tun ist, ist, wie ich meine neuen Ergebnisse an die vorhandene Statusvariable anfüge, da die zurückgegebenen Daten ein Objekt und kein Array sind, so dass concat() nicht funktioniert. – thomas
Sicher, dass ich dir dabei helfen kann. Können Sie ein Beispielergebnis in Ihre Frage kopieren – ctrlplusb
Nevermind, ich fand die Lösung! Im Grunde habe ich eine temporäre Variable erstellt, um mein Objekt in Array zu konvertieren, wobei .map() und concat() jetzt gut funktionieren. Vielen Dank für die Hilfe von @ctrlplusb. Das Ergebnis ist viel einfacher und sauberer. – thomas