Ich baue eine Komponente reagieren, die in einer Komponente nimmt (PropTypes.func
oder PropTypes.element
) durch prop component={MyTemplate}
, die als Vorlage dienen, ähnlich wie react-router
tut Route Definitionen.Anbringen Requisiten auf einer staatenlos Funktion von Requisiten
Innerhalb der Komponente möchte ich Requisiten an das component
Element befestigen. Durch die Dokumente verstehe ich, dass ich cloneElement
verwenden soll, um Requisiten daran zu befestigen.
class MyComponent extends Component {
// ...
render() {
const {component, blockProps} = this.props;
const body = cloneElement(component, blockProps);
return (
<div className="sortable-block__body">
{body}
</div>
);
}
}
// later when rendering the component
<MyComponent component={component} ... />
wenn die Komponente Rendering React wirft Invariant Verletzung:
Uncaught Invariant Verletzung: Elementtyp ist ungültig: a string (für Einbauten) zu erwarten oder eine Klasse/Funktion (für Verbundbauteile) aber bekam: undefiniert.
Nicht cloneElement
betrachten zustandslose Funktionen als ReactElement
? Wenn nicht, wie verwalte ich das Hinzufügen von Requisiten der zustandslosen Komponente?
vor ' 'das hat nicht funktioniert. Aber wenn ich die "Komponente" einer Variablen namens "Komponente" zuweisen, funktioniert es. Danke für die Hilfe, wusste nicht, die Großschreibung des ersten Buchstaben hatte eine solche Wirkung. –
Wenn es nicht groß geschrieben wird, behandelt React es als Tag-Name, nicht als Komponente –