Meine übergeordnete Komponente, im Grunde ein Formular, hat ein Kind, ein Overlay mit einem Ladeprogramm, das nur basierend auf dem Status des übergeordneten Elements angezeigt werden muss.Dynamische Render-Komponente basierend auf dem übergeordneten Status
import React from 'react';
import Overlay from './overlay';
export default class RegisterForm extends React.Component {
constructor {
this.state = {
loading: false
};
}
handleSubmit(){
this.state.loading = true;
...
}
render(){
return(
<form onSubmit={() => this.handleSubmit()}>
...
<Overlay />
</form>
);
}
}
Wie kann ich das erreichen?
Ich versuchte React.cloneElement(<Overlay />, {})
aber ich weiß nicht, wie dieses Kind zum Vater wieder anhängen und wie ich sie verstehe, es ist nicht das Reagieren-Weg, Dinge zu tun ...
Ich habe auch versucht eine Einstellung prop
ob Overlay
basierend auf state
der Eltern, wie React.cloneElement(<Overlay />, { visible = this.state.loading })
aber kann nicht scheinen, um es an die Arbeit ...
Leider ist dies entweder nicht funktioniert. Ich habe versucht '{(this.state.loading == true)? : null} 'und' {(this.state.loading)? : null} 'und' {this.state.loading && } ' –
afkatja
Verwenden Sie event.preventDefault in Ihrem handleSubmit. Überprüfen Sie die aktualisierte Antwort –
Ich hatte dies bereits in meinem ursprünglichen Code; in Frage weggelassen (dachte, dass es irrelevant war?) – afkatja