Nach dem Beginn der Arbeit mit React.js scheint props
es statisch zu sein (von der übergeordneten Komponente übergeben), während state
Änderungen auf Ereignissen basieren. Ich habe jedoch in den Dokumenten einen Verweis auf bemerkt componentWillReceiveProps
, der speziell dieses Beispiel enthält:
componentWillReceiveProps: function(nextProps) {
this.setState({
likesIncreasing: nextProps.likeCount > this.props.likeCount
});
}
Dies scheint zu implizieren, dass sich die Eigenschaften einer Komponente basierend auf dem Vergleich von nextProps
zu ändern können this.props
. Was vermisse ich? Wie ändern sich Requisiten oder irre ich mich darüber, wo dies genannt wird?
quelle
componentWillReceiveProps
ist jetzt veraltet: und ersetzt durch eine Kombination vongetDerivedStateFromProps
undcomponentDidUpdate
.REQUISITEN
ZUSTAND
Ein gutes Beispiel liefert bereits Valéry.
quelle
Requisiten können sich ändern, wenn das übergeordnete Element einer Komponente die Komponente erneut mit unterschiedlichen Eigenschaften rendert. Ich denke, dies ist meistens eine Optimierung, so dass keine neue Komponente instanziiert werden muss.
quelle
Trick, um Requisiten zu aktualisieren, wenn sie Array sind:
quelle
Mit Hooks hat sich viel geändert, z. B.
componentWillReceiveProps
inuseEffect
+useRef
( wie in dieser anderen SO-Antwort gezeigt ), aber Requisiten sind immer noch schreibgeschützt , sodass nur die Aufrufermethode sie aktualisieren sollte.quelle
Wenn Sie verwenden
recompose
, verwenden SiemapProps
, um neue Requisiten zu erstellen, die von eingehenden Requisiten abgeleitet sindBearbeiten Sie zum Beispiel:
quelle