在React.js表单中不触发onSubmit事件

时间:2015-05-08 09:41:03

标签: forms reactjs

我的基于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行开始查找我的代码(已编译)。

1 个答案:

答案 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依赖项来修复它。