Ich teste mit ReactJS herum und verwende Material-Ui. Für eine kleine Testkomponente verwende ich Dialog. Ich verwende den gleichen Code wie in Ihrem Beispiel, aber das scheint nicht zu funktionieren. Vielleicht gibt es einen Fehler oder die Dokumentation war mir nicht klar genug.
Hier ist der Code
const {Dialog, FlatButton} = MUI;
Home = React.createClass({
getInitialState() {
return {
welcomeModal: false
};
},
openWelcomeDialog() {
this.setState({welcomeModal:true});
},
closeWelcomeDialog(buttonClicked) {
console.log('Close The Welcome Dialog.');
this.setState({welcomeModal:false});
},
render() {
let modalActions = [
{ text: 'Cancel' }
];
return (
<div>
<h1>Welcome to my app</h1>
<a href="#" onClick={this.openWelcomeDialog}>Open the Welcome Modal</a>
<Dialog
title="Welcome Modal"
actions={modalActions}
autoDetectWindowHeight={true}
autoScrollBodyContent={true}
open={this.state.welcomeModal}
onRequestClose={this.closeWelcomeDialog}>
<div style={{height: '1000px'}}>
Really long content
</div>
</Dialog>
</div>
);
}
});
Was geschieht:
Wenn ich auf den Link klicke, wird das Ereignis ausgelöst und das Modal wird richtig geöffnet. Aber: Egal auf was ich im Hintergrund klicke oder auf den Cancel-Button: Das Modal wird nicht geschlossen und auch die console.log wird nicht gefeuert ... also: Die Methode wird nicht aufgerufen! In meinem Beispiel ist es unmöglich, das Modal zu schließen.
Rufen Sie zuerst injectTapEventPlugin()
?
Oh .. 'rly ? Jetzt funktioniert es. Ich suche schon seit einiger Zeit nach dem Problem...
Die Antwort lautet also: Nein, ich habe nicht angerufen. Habe dies in den Material-Ui-Dokumenten nicht gesehen. Danke @oliviertassinari !
Ich habe das gleiche Problem und verwende injectTapEventPlugin()
. Und alles andere, was mit Ereignissen zu tun hat, scheint zu funktionieren. Sollte ich nach etwas anderem suchen?
Das Problem ist so ziemlich das gleiche wie im Eröffnungsthema, egal wohin ich klicke - es wird nicht gefeuert.
Hilfreichster Kommentar
Ich habe das gleiche Problem und verwende
injectTapEventPlugin()
. Und alles andere, was mit Ereignissen zu tun hat, scheint zu funktionieren. Sollte ich nach etwas anderem suchen?Das Problem ist so ziemlich das gleiche wie im Eröffnungsthema, egal wohin ich klicke - es wird nicht gefeuert.