Haftungsausschluss: Ich habe mir Reactjs: how to modify child state or props from parent? angesehen und glaube nicht, dass die Antwort meine Frage passt.ReactJS: Muting Kind Staat von Eltern über Requisiten
So habe ich eine wiederverwendbare, statusbehaftete Konversationskomponente, die verschiedene DOM basierend auf seinem Status rendert. Ich muss auch steuern können, welches DOM vom übergeordneten Element gerendert wird.
TL; DR - Wie sollte ich einen Kind-Komponenten-Status vom Elternteil mutieren, wenn überhaupt, welche anderen Optionen gibt es?
Das Kind:
export default class Conversation extends Component {
constructor(props) {
super(props);
this.state = {
newConversation: props.showNewConversation
};
}
render() {
if (!this.state.newConversation) {
return (
<div>Current Conversation</div>
);
} return (
<div>New Conversation</div>
);
}
}
Jetzt muss ich diese Komponente an verschiedenen Orten machen, aber ich brauche die entsprechenden DOM in Abhängigkeit von der Mutter zu machen, dh von der navbar können Sie Erstellen Sie eine neue Konversation, und von der Benutzerseite können Sie direkt zu Ihrer Konversation mit ihnen gehen, so dass ich steuern kann, wenn ich das Kind über seine Requisite anrufe.
Kind aufrufen und Zustand über prop Einstellung:
<Conversation
showNewConversation={this.state.isConversationShown === true}
/>
Diese arbeitet derzeit, aber ich habe gesagt, das ist eine sehr schlechte Praxis in Reaktion, ist meine Frage, warum eigentlich Dies wird als schlechte Praxis angesehen, und wie eine gute Praxislösung aussehen würde.
Warum dies für Daten eine sehr schlechte Praxis ist vom Eigentümer fließt zu owned Komponente durch 'Requisiten'? –