Ich versuche, "Zeige mehr" -Funktion für meine Kommentar-Abschnitt in Reactjs zu implementieren, aber wenn ich klicke Show mehr lädt es nicht das gesamte Array, aber es entfernt den Link mehr anzeigen. Hier ist mein Code:Implementierung "Zeige mehr" in ReactJs
var CommentBox = React.createClass({
getInitialState: function() {
return {limit:3 ,showMore:false};
},
showMore:function() {
this.setState({showMore: true, limit: this.props.comments.length});
},
render: function() {
var cls=[];
var length=this.props.comments.length;
if(length >= this.state.limit){
cls=[];
for (var i=0;i<this.state.limit;i++)
cls.push(this.props.comments[i]);
}
return (
<div className="commentBox">
<CommentList data={cls} />
{length> 3 &&!this.state.showMore? <div><a onClick={this.showMore} >show more</a></div>: null}
</div>
);
}
});
jede Änderung state.comments machen nicht die Ansicht überhaupt nicht beeinflusst.
Sie wissen wahrscheinlich schon, dass man Requisiten nicht in den Zustand kopieren sollte. Dies führt meist zu einer Katastrophe. Ich würde vorschlagen, nur die Anzahl der sichtbaren Gegenstände im Staat zu behalten. Setzen Sie es standardmäßig auf 3 und klicken Sie auf showMehr Sie erhöhen die Anzahl der sichtbaren Elemente. – pintxo
@pintxo Ich habe getan, was Sie vorgeschlagen haben, aber es ändert immer noch nicht die Ansicht [Sie können die Bearbeitung in meinem Code sehen]. Ich muss erwähnen, dass dies wie ein Newsfeed ist und es gibt viele Elemente mit jeweils einem eindeutigen Schlüssel –