Wenn A rendert B passiert es handleClick-Funktion mit diesem gebunden. Dies führt dazu, dass previousProps.onClick! == nextProps.onClick, da die Bindung jedes Mal neue Funktion erstellt. Wie kann man das verhindern? Ich könnte "shouldComponentUpdate" verwenden, aber gibt es bessere Möglichkeiten?Passing-Funktion mit Grenze verursacht Diffing, ohne zu rendern
0
A
Antwort
0
Anstatt das Verfahren innerhalb der Methode machen binden, binden die Funktion innerhalb des Konstrukteurs, wie folgt aus:
import {autobind} from "cure-decorators"
@autobind
class A extends React.Component {
handleClick() {
console.log("Hello from the other side");
}
render() {
<B onClick={this.handleClick}/>
}
}
class B extends React.Component() {
render() {
return <div>Useless stuff/>
}
}
:
class A extends React.Component {
constructor(props, context) {
super(props, context);
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
console.log("Hello from the other side");
}
render() {
<B onClick={this.handleClick}/>
}
}
class B extends React.Component() {
render() {
return <div>Useless stuff/>
}
}
Sie auch autobind
von Kern-Dekorateure wie so verwenden könnte
wenn Sie Dekorateure verwenden.
Verwandte Themen
- 1. Mount ohne Diffing oder Neuzeichnen von allem
- 2. Wie kann ich einen TD ohne Inhalt zwingen, seine Grenze zu rendern?
- 3. Minimal dir-Baum diffing mit git
- 4. Javascript iframe ohne Grenze
- 5. Algorithmen: Interessante diffing algorithm
- 6. Diffing Sql Schema
- 7. ohne Grenze in PHPWord
- 8. LINQ für diffing Sätze
- 9. Requisiten übergeben, ohne etwas zu rendern
- 10. get user_id, ohne eine Route zu rendern
- 11. Change default SVN diffing Werkzeug
- 12. Verwendet Angular DOM diffing oder muss es jedes Listenelement "neu rendern"?
- 13. Rendern ohne Google Web-Schriftarten mit Bootstrap?
- 14. Rendern mehrerer Base64-Bilder mit Angular 4 verursacht Leistungsprobleme
- 15. Grenze Grenze mit bvp4c Matlab
- 16. Rendern eines Sammlungswerts ohne Klammern
- 17. Wie zu rendern Rendern: JSON
- 18. Diffing zwei Zweige zu zeigen Änderungen in einem Zweig
- 19. Es ist möglich, ein Array ohne obere Grenze zu haben?
- 20. Verwenden magit Stil Diffing im Allgemeinen
- 21. Diffing zwei Objekte und bekomme nur Updates
- 22. erhalten Username ohne die 20 Zeichen Grenze
- 23. diffing nur Dateien geändert in Mercurial
- 24. Objekt rendern, ohne einen neuen Puffer zu erstellen
- 25. React Native - CSS: Last-Kind ohne Grenze?
- 26. HTML Grenze nicht mit float zu beeinflussen
- 27. Grenze zu RadioButton mit Text in Android
- 28. Unmöglich, mehrere Diagramme mit chart.js zu rendern
- 29. Rendern von großen Tabellen in React & Redux App verursacht Leistungsprobleme
- 30. Entfernen von Elementen des Arrays verursacht mehrere Rendern