Ich verwende MaterialUI, genauer gesagt die TextField
Komponente, die ich irgendwie dekorieren möchte, um den Validierungsstatus auf Komponentenebene zu behandeln.React HOC gibt eine anonyme _class zurück
Ich weiß über die HOC in reagieren, das ist ein Muster, das perfekt dafür scheint. Aber ich muss eine anonyme Klasse zurückgeben und daher kann ich den Wert der TextField
Komponente nicht erhalten, wie ich sollte, weil der zurückgegebene Typ _class
anstelle von TextField
ist.
Mache ich etwas falsch mit dem HOC-Muster, oder vielleicht ist dies nicht der beste Weg, eine Komponente ohne Änderung des Prototyps wiederzuverwenden. Jede Hilfe würde sehr geschätzt werden.
Die HOC Erklärung
export default function hocInputValidator(WrappedComponent){
return class extends Component{
constructor(props){
super(props);
}
handleChange(){
console.log('Handling from HOC');
}
render(){
return <WrappedComponent {...this.props}/>
}
}
}
Der Aufruf und die dekorierten Komponente Export
export default hocInputValidator(TextField);
Wenn ich versuche, die dekorierte Komponente über refs
zugreifen zu können, ist die Art _class
statt TextField
.
Konnten Sie das Problem mit der gegebenen Lösung lösen? Bitte lass es uns wissen. Wenn nicht, können wir Ihnen weiter helfen, es herauszufinden. –
Hallo, Ravindra! Nein, leider nein, ob HOC nicht die beste Lösung dafür ist oder es gibt einige Probleme bei der Implementierung von Komponenten auf der Material-UI-Seite, das Seltsame ist, dass HOC nach dem, was ich gelesen habe, eine Art von Komposition ist und daher Es muss möglich sein, dies zu lösen, indem es implementiert wird, die Zusammensetzung ist nichts anderes als das Liskov-Substitutionsprinzip (eines der SOLID-Prinzipien), also macht es aus logischer Sicht viel Sinn (ich rate nur). –