我的基于React的应用程序包含一个表单,并且在它停止工作的某个地方,onSubmit甚至不再被触发,表单只是简单地提交了一个新的http请求。在尝试隔离问题时,我将整个应用程序剥离到以下代码段(实际上这是从另一个问题中获取的jsfiddle):
import React from 'react'
var OnSubmitTest = React.createClass({
render: function () {
var doSomething = function () {
alert('it works!');
}
return <form onSubmit={doSomething}>
<button>Click me</button>
</form>;
}
});
React.render(<OnSubmitTest/>, document.body);
jsfiddle上的脚本可以正常工作:在实际提交表单之前就会提醒消息。但是,我的应用程序中没有提醒。
如果我添加e.preventDefault()
,则根本没有提交jsfiddle表单,我的表单是。
不同之处在于我使用来自es6的webpack和babel来构建我的应用程序,但很难相信这会对此事产生任何影响。
任何想法可能是什么原因?接下来我应该尝试调试它?
更新: JSFiddle showing the problem。链接文件是webpack输出(不以任何方式使其保持可读性,这就是为什么它如此巨大)。您可以从53行开始查找我的代码(已编译)。
答案 0 :(得分:0)
神秘解决了:我忘了将form
目录标记为已排除(我使用IntelliJ IDEA),因此当我使用重构将某个变量名form
更改为其他内容时,IDE急切地重构了整个使用新值对private void btnImport_Click(object sender, RibbonControlEventArgs e)
{
xlApp = Globals.ThisWorkbook.Application;
ThisWorkbook wb = Globals.ThisWorkbook;
deleteDataSheet(wb);
try
{
OpenFileDialog dialog = new OpenFileDialog();
xl.Worksheet ws = wb.Sheets["Data"];
dialog.ShowDialog();
string path = dialog.FileName.ToString();
wb.XmlImport(path, out xl.XmlMap, Type.Missing, ws.Range["A1"]);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
的所有匹配项进行反应并替换。
我通过重新安装所有npm依赖项来修复它。