Material-ui: [Dialog] onRequestClose scheint nicht ausgelöst zu werden - was mache ich falsch?

Erstellt am 6. Dez. 2015  ·  3Kommentare  ·  Quelle: mui-org/material-ui

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.

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.

Alle 3 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

revskill10 picture revskill10  ·  3Kommentare

mattmiddlesworth picture mattmiddlesworth  ·  3Kommentare

finaiized picture finaiized  ·  3Kommentare

chris-hinds picture chris-hinds  ·  3Kommentare

pola88 picture pola88  ·  3Kommentare