Also, meine Komponente erhält ein Objekt aus einer übergeordneten Komponente und das Objekt sieht wie folgt aus:ReactJS: Objekt in ein Array drehen und machen
{
_id: Data.now(), // MongoDB database
name: "",
description: "",
image: "images/image.jpg",
type: "image"
}
In meinem Kind Komponente, ich möchte diese Daten nehmen und eine machen Eingabe für jeden einzelnen, damit ich die Werte ändern und dann die neuen Daten speichern kann.
Aktualisiert Antwort (es6 Klasse):
constructor(props) {
super();
this.state = {
fieldGroups: []
}
this.parseProps = this.parseProps.bind(this);
}
componentWillMount() {
this.parseProps(this.props);
}
componentWillReceiveProps(nextProps) {
this.parseProps(nextProps);
}
parseProps(props) {
var fieldsArray = [];
var content = props.content;
Object.keys(content).map((field,index) => {
if (field === 'type') {
let fieldObj = {};
fieldObj.field = field;
fieldObj.value = content[field];
fieldObj.key = props.content._id + field;
fieldsArray.push(fieldObj);
}
});
this.setState({
fieldGroups: fieldsArray
});
}
render() {
return (
{
this.state.fieldGroups.map((field) => {
if (field.field === "type") {
return (html element specific to type)
} else {
return (a different html element)
}
})
}
)
}
So, jetzt kann ich meine Komponenten im Sinne der Trennung das Kind Komponente entscheiden zu lassen, welche den Benutzer zeigen Felder. Danke DanneManne
Schwer von diesem unvollständigen Beispiel zu erzählen. Können Sie mehr Code für diese Komponente anzeigen? Ist es eine Klasse? Haben Sie den Konstruktor korrekt implementiert? https://StackOverflow.com/Help/Mcve –