Angenommen, ich habe zwei Komponenten namens Parent
und Child
. In Komponente habe ich einen Zustand mit dem Namen lastName
, die an Child
als Prop übergeben wird. Nun, nach dem ersten Rendering von Child
und Parent
, wenn die lastName
in Parent
geändert wird, wird es Child
Komponente zu rerender verursachen?Reagiert Re-Renders-Komponente, wenn eine Requisite geändert wird
Antwort
Ja, wenn Sie die Eigenschaft über setState einstellen. Re-render in React ist jedoch nicht etwas, vor dem Sie Angst haben sollten, es ist sehr effizient aufgrund der Verwendung von Virtual DOM.
In der untergeordneten Komponente sollten Sie die
shouldComponentUpdate(nextProps){
return this.props.lastname !== nextProps.lastname
}
https://facebook.github.io/react/docs/component-specs.html#shouldComponentUpdate
Danach wird in der untergeordneten Komponente folgende verwenden müssen Sie möglicherweise den Zustand aktualisieren. Um das zu erreichen, dass Sie componentWillReceiveProps (nextProps)
componentWillReceiveProps(nextProps){
this.setState({
lastname: nextProps.lastname
});
}
Die Kinderkomponente nur gerenderte wieder wird verwenden können, wenn Requisiten ist lastName
in Kinder Funktion und Eltern verwendet werden, die Verwendung setState
Funktion machen lastName
zu ändern. Denken Sie daran, Reaction ist unidirektionaler Datenfluss, wenn Sie Child-Komponente innerhalb des Child erneut rendern möchten, müssen Sie ein Ereignis aufrufen, das auch setState
zurück zur übergeordneten Komponente
- 1. Ändern Requisite Wert
- 2. Wie wird der Wert geändert, wenn die Option geändert wird?
- 3. Reagiert die Komponente selbstständig, wenn eine Methode aufgerufen wird
- 4. auf MvcBuildViews mit Teamcity, wenn eine Ansicht geändert wird
- 5. Wie öffne ich eine HTML-Datei, wenn sie geändert wird?
- 6. Rufen Sie eine Funktion auf, wenn die Fenstergröße geändert wird
- 7. erfordern eine Datei erneut, wenn es geändert wird
- 8. MySQL Trigger Frage: nur auslösen, wenn eine Spalte geändert wird?
- 9. JQuery - Ausgewählte Option ändern, wenn eine andere Auswahl geändert wird
- 10. Aufruf if-Anweisung jedes Mal, wenn eine Eingabe geändert wird
- 11. SQL Server-Trigger, wenn Tabelle geändert wird
- 12. DropDownListFor wird keine Funktion aufrufen, wenn geändert
- 13. Benachrichtigung erhalten, wenn Fokusstufe geändert wird
- 14. ObjectDataSource zweimal erstellt, wenn Steuerelement geändert wird
- 15. Wpf-Ereignis, wenn DataContext geändert wird
- 16. Resize jqGrid wenn Browser Größe geändert wird?
- 17. Hintergrundbild "blinkt", wenn die Bildschirmausrichtung geändert wird
- 18. Bilder werden geändert, wenn UICollectionView gescrollt wird
- 19. jQuery + Jeditable - erkennen, wenn Auswahl geändert wird
- 20. wenn Registerkarte geändert wird, welche Methode neben OnTabChange aufgerufen wird
- 21. BindingList.ListChanged Ereignis wird nicht ausgelöst, wenn die Eigenschaft geändert wird
- 22. Wie ein Ereignis ausgelöst wird, wenn DataGrid.ItemsSource geändert wird
- 23. google map wird erst geladen, wenn die Fenstergröße geändert wird
- 24. Wenn die Größe des Bildschirms geändert wird, wird die Schaltfläche
- 25. Workflow reagiert nicht mehr, wenn Listenelement programmgesteuert aktualisiert wird
- 26. ngChange wird aufgerufen, wenn das Modell programmgesteuert geändert wird
- 27. RequiredFieldValidator wird nicht ausgelöst, wenn ControlToValidate visibility geändert wird
- 28. Actionbar Scherlock wird nicht aktualisiert, wenn die Ausrichtung geändert wird
- 29. Warum wird meine SQLite-Datenbank gelöscht, wenn sie geändert wird?
- 30. Kong reagiert 404, wenn auf vi Postman zugegriffen wird
Tnx für die Antwort auslösen, ich hatte keine Angst wegen Ineffizienz, aber weil es überhaupt nicht rendern würde! – Mehrdad
@Mehrdad wird es, es heißt React [ive] aus einem Grund. – Pavlo