私はReactJSとMaterial-Uiを使ってテストしています。 小さなテストコンポーネントの場合、Dialogを使用しています。 私はあなたの例と同じコードを使用していますが、これは機能しないようです。 バグがあるか、ドキュメントが十分に明確ではなかった可能性があります。
これがコードです
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>
);
}
});
何が起こるのですか:
リンクをクリックすると、イベントが発生し、モーダルが正しい方法で開きます。 しかし:バックグラウンドでクリックしているのかキャンセルボタンでクリックしているのかは関係ありません:モーダルは閉じられず、console.logも起動されません...そう:メソッドは呼び出されません! 私の例では、モーダルを閉じることは不可能です。
まず、 injectTapEventPlugin()
電話しますか?
ああ.. 'rly? 今では動作します。 私はしばらくの間問題を見つけようとしていました...
だから答えは:いいえ、私はそれを呼んでいませんでした。 Material-UiDocsで参照されているこれを見ませんでした。 ありがとう@oliviertassinari !
同じ問題があり、 injectTapEventPlugin()
ます。 そして、イベントに関連する他のすべてが機能しているようです。 他に何かチェックする必要がありますか?
問題は、どこをクリックしても、冒頭のトピックとほとんど同じです。起動しません。
最も参考になるコメント
同じ問題があり、
injectTapEventPlugin()
ます。 そして、イベントに関連する他のすべてが機能しているようです。 他に何かチェックする必要がありますか?問題は、どこをクリックしても、冒頭のトピックとほとんど同じです。起動しません。