Ich entwickle eine einfache Browser-App, um bestimmte Daten vom Benutzer zu erhalten. Ich habe mehrere Komponenten, um den Prozess des Sammelns dieser Daten zu vereinfachen, aber ich überlege derzeit, wie ich diese Komponente rendern kann.react-Komponente - Eltern-Kind-Interaktion; Komponente Lebenszyklus
Grundsätzlich habe ich meine Hauptkomponente, die Status verwendet, um zu verfolgen, welche Komponente zu rendern.
Ich mache das für fast alle meine Komponenten. Außerdem habe ich auch eine Funktion innerhalb der Elternkomponente, die ich über Requisiten an die Kindkomponente übergebe und die als Rückruf verwendet wird, um den Kindstatus an sein Elternelement zu übergeben, wenn diese Komponente nicht mehr nützlich ist.
class Main extends React.Component {
constructor(props){
this.state = {
renderA: true,
renderB: false,
childState: null
}
}
collectState(state){
this.setState({
childState: state
});
}
render() {
let content = null;
if(this.state.renderA === true){
content = <ComponentA />
} else {
content = <ComponentB />
}
return(
<div>
{content}
</div>);
}
}
So, das obige Beispiel verwendet wird, würde das Kind so etwas wie dieses
class ComponentA extends React.Component {
constructor(props){
super(props);
this.state = {
stop: false,
usefullInfo: null
}
destroy() {
this.props.collectstate(this.state.usefullInfo)
}
render(){
render something (like a Form) untill this.state.usefullInfo is set;
in that case, set this.state.stop true which will call destroy, passing the usefull information to parent
}
}
So sei es, diese Methode funktioniert für mich, aber ich kann deutlich sehen, dass die meisten wahrscheinlich nicht der richtige Weg ist mach das.
An dieser Stelle meine Frage lautet:
1) Wie kann ich eine Komponente stoppen Rendering ohne es mit einer Eigenschaft wie this.state.stop zu verfolgen zu haben?
2), wenn ich 2 verschiedene Komponenten machen möchten, wie in der Hauptkomponente, muss ich immer eine Rendera halten und renderB Eigenschaft auf Zustand, den einen oder anderen zu machen?
3) Gibt es eine bessere Möglichkeit, Informationen vom Kind zum Elternteil weiterzuleiten? Ich verwende derzeit eine Callback-Funktion über Requisiten von Eltern zu Kind, und ich rufe diesen Callback, wenn die Komponente ihren Zweck erfüllt hat
4) irgendwelche allgemeinen Vorschläge zur Verbesserung der Qualität des oben genannten Codes?
Vielen Dank für Sie Hilfe :)!
Ich kann sehen, wie Ihr Vorschlag den Code verbessert. Es war sehr hilfreich und ich schätze deine Hilfe. Ich werde das noch eine Weile offen lassen, um zu sehen, ob jemand noch mehr Vorschläge hat, und ich werde deine Antwort bald akzeptieren. –