Entfernen einer Komponente onClick-in reagieren
Ich bin Anzeige a overlay
Seite, wenn eine bestimmte input
geklickt wird. Jetzt will ich entfernen, dass overlay
Seite, wenn ein Benutzer clicks
irgendwo in diesem overlay
. Wie kann ich das tun?
Ich bin die Anzeige der overlay auf klicken Sie auf, wie diese
constructor(props) {
super(props);
this.state = {
showComponent: false,
};
this.popup_ques = this.popup_ques.bind(this);
}
popup_ques() {
this.setState({
showComponent: true,
});
}
render() {
return (
<div className="ff">
<div className="middle_div">
<input className='post_data_input' placeholder="Ask your question here" ref="postTxt" onClick={this.popup_ques}/>
</div>
{this.state.showComponent ? <QuestionOverlay/> : null}
</div>
);
}
Meine overlay
ist in der Komponente QuestionOverlay
class QuestionOverlay extends Component {
constructor() {
super();
}
closeOverLay = (e) => {
alert("fse");
}
render() {
return (
//Here I have implemented my overlay
)
}
}
export default QuestionOverlay;
Also, wie kann ich schließen/entfernen der overlay-Komponente, wenn ich Sie irgendwo auf meinem overlay?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Übergeben Sie eine Funktion aus der Überlagerung der übergeordneten Komponente (die Komponente, die zeigt die Overlay), die aufgerufen wird
onClick
im Overlay. Diese Funktion aktualisiertthis.state.showComponent
des Elternteils, derfalse
zu verstecken Overlay.Eltern
Overlay
this.hideOverlay.bind(this)
im Konstruktor.{this.state.showComponent && <QuestionOverlay hideOverlay={this.hide_overlay} />} as opposed to the ternary.