Material-ui: [Dialog] onRequestClose ne semble pas être déclenché - qu'est-ce que je fais mal ?

Créé le 6 déc. 2015  ·  3Commentaires  ·  Source: mui-org/material-ui

Je teste avec ReactJS et j'utilise Material-Ui. Pour un petit composant de test, j'utilise Dialog. J'utilise le même code que dans votre exemple mais cela ne semble pas fonctionner. Peut-être qu'il y a un bug ou que la doc n'était pas assez claire pour moi.

voici le 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>
    );
  }
});

Ce qui se produit:

Lorsque je clique sur le lien, l'événement sera déclenché et le modal s'ouvrira dans le bon sens. Mais : Peu importe sur quoi je clique si en arrière-plan ou sur le bouton Annuler : Le modal ne sera pas fermé et le console.log ne sera pas non plus déclenché... donc : La méthode ne sera pas appelée ! Dans mon exemple, il est impossible de fermer le modal.

Commentaire le plus utile

J'ai le même problème et j'utilise injectTapEventPlugin() . Et tout le reste lié aux événements semble fonctionner. Dois-je vérifier autre chose ?

Le problème est à peu près le même que dans le sujet d'ouverture, peu importe où je clique - il ne se déclenche pas.

Tous les 3 commentaires

D'abord, appelez-vous injectTapEventPlugin() ?

Oh .. rly ? Maintenant ça marche. J'essayais de trouver le problème depuis un moment maintenant...

La réponse est donc : non, je ne l'appelais pas. Je n'ai pas vu cela référencé dans les documents Material-Ui. Merci @oliviertassinari !

J'ai le même problème et j'utilise injectTapEventPlugin() . Et tout le reste lié aux événements semble fonctionner. Dois-je vérifier autre chose ?

Le problème est à peu près le même que dans le sujet d'ouverture, peu importe où je clique - il ne se déclenche pas.

Cette page vous a été utile?
0 / 5 - 0 notes