Ich habe eine einfache Komponente, die angeblich andere Art von Feldern in meine Form Komponente zu machen:Wie verwende ich die Punktnotation beim Rendern von Komponenten?
import React from "react";
export default class Field extends React.Component {
render() {
switch (this.props.type) {
case 'textarea': {
return (
<div className="col-xs-12">
<textarea
placeholder={this.props.placeholder}
name={this.props.name}
>
</textarea>
</div>
)
}
case 'text': {
return (
<div className="col-md-6 col-lg-4">
<input
type="text"
placeholder={this.props.placeholder}
name={this.props.name}
/>
</div>
)
}
}
}
}
Und ich bin mit dieser Komponente in meiner Form Komponente wie folgt aus:
export default class SubmitForm extends React.Component {
render() {
return (
.
.
.
<Field
type="text"
placeholder="something"
name="something"
/>
<Field
type="textarea"
placeholder="another"
name="othername"
/>
.
.
.
)
}
}
Was Ich denke daran, meine Feldkomponente irgendwie zu implementieren, um Punktnotation verwenden zu können, wie in Using Dot Notation for JSX components erklärt, die ich viele andere Bibliotheken gesehen habe und ich möchte diese Komponente so verwenden können:
<Field.Text name="sth" placeholder="sth" />
<Field.TextArea name="other" placeholder="other stuff" />
Aber ich kann es nicht tun, wie in React docs erwähnt. Wie kann ich das machen?
so eigentlich kein Punkt ist, diese Punktnotation bei der Erreichung, denke ich. und ich sollte sowieso separate Komponenten erstellen. und finden Sie einen Weg, um gegenseitige Event-Handler und andere Sachen zwischen diesen Komponenten zu teilen. Ist das der einzige Weg? Ich meine, ich habe andere Bibliotheken wie react-reducx-form gesehen, die etwas wie oder . tun sie das auch, wenn sie nur unter dem Namen Control exportieren? –
Taxellool
@Taxellool Nun, es ist hauptsächlich für organisatorische Zwecke. Sie haben nur einen Namensraum wie 'Field', um alle ihre Feldtyp-Komponenten zusammenzufassen und den Namespace zu exportieren. – Li357
danke. Der letzte Abschnitt Ihrer Antwort hat mich tatsächlich dazu gebracht, die in den Dokumenten beschriebene Vorgehensweise zu verstehen. Jedenfalls sehe ich keinen Grund, dies weiter zu verfolgen. der ganze Zweck der "Punktnotation" scheint für das Organisieren zu sein, wie Sie sagten. Und separate Komponenten müssen in beide Richtungen definiert werden. Danke für deine Antwort. – Taxellool