2015-05-08 85 views
0

我的基於React的應用程序包含一個表單,並且在停止工作的過程中,onSubmit甚至不再被觸發,表單只是簡單地通過一個新的http請求提交。在試圖隔離問題,我扯下我的整個應用程序下面的代碼片段(實際上是這個jsfiddle從另一個問題採取):onSubmit事件沒有在React.js表單中被解僱

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表單根本沒有提交,我的表單是。

區別在於我使用webpack和es6的babel構建了我的應用程序,但很難相信這可能會對此產生任何影響。

任何想法可能是什麼原因?我應該嘗試下一步調試?

更新:JSFiddle showing the problem。鏈接的文件是webpack輸出(不以任何方式使其保持可讀性,這就是爲什麼它如此巨大)。您可以從53行開始找到我的代碼(已編譯)。

+0

也許你可以複製/粘貼生成的JS不工作到小提琴?很難調試我們看不到的東西。 – David

+0

查看鏈接。該webpack輸出是巨大的,jsfiddle無法處理它,所以我不得不從外部添加它(作爲要點)。 – tobik

回答

0

解開了謎底:我忘了爲排除標記node_modules目錄(我用的IntelliJ IDEA),所以當我用重構來改變一些變量名form別的東西,IDE會急切地重構了整個反應,並替換form所有出現與新的價值。

我通過重新安裝所有的npm依賴關係來修復它。