أنا أختبر مع ReactJS وأستخدم Material-Ui. بالنسبة لمكون اختبار صغير ، أستخدم مربع الحوار. أنا أستخدم نفس الكود كما في المثال الخاص بك ولكن يبدو أن هذا لا يعمل. ربما هناك خطأ أو المستندات لم تكن واضحة بما يكفي بالنسبة لي.
ها هي المدونة
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>
);
}
});
ماذا يحدث:
عندما أنقر على الرابط ، سيتم إطلاق الحدث وسيتم فتح النموذج بالطريقة الصحيحة. لكن: لا يهم ما أقوم بالنقر فوقه إذا كان في الخلفية أو على زر إلغاء الأمر: لن يتم إغلاق Modal وأيضًا لن يتم تشغيل console.log ... لذلك: لن يتم استدعاء الطريقة! في المثال الخاص بي من المستحيل إغلاق الوسائط.
أولاً ، هل تتصل بـ injectTapEventPlugin()
؟
أوه .. 'rly؟ الآن يعمل. كنت أحاول العثور على المشكلة لفترة من الوقت الآن ...
لذا فإن الجواب هو: لا ، لم أكن أسميها. لم أر هذا مُشار إليه في مستندات Material-Ui. oliviertassinari شكرا!
لدي نفس المشكلة ، وأنا أستخدم injectTapEventPlugin()
. ويبدو أن كل شيء آخر متعلق بالأحداث يعمل. هل يجب أن أتحقق من شيء آخر؟
المشكلة هي نفسها إلى حد كبير كما في الموضوع الافتتاحي ، بغض النظر عن المكان الذي أنقر فيه - لا يتم تشغيله.
التعليق الأكثر فائدة
لدي نفس المشكلة ، وأنا أستخدم
injectTapEventPlugin()
. ويبدو أن كل شيء آخر متعلق بالأحداث يعمل. هل يجب أن أتحقق من شيء آخر؟المشكلة هي نفسها إلى حد كبير كما في الموضوع الافتتاحي ، بغض النظر عن المكان الذي أنقر فيه - لا يتم تشغيله.