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.
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.
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.