我使用Sinon來窺探該方法,但是我在進行間諜活動的方法似乎沒有被調用,當我嘗試模擬onSubmit
的form
標籤。使用TestUtils模擬ReactJS表單標籤不會觸發`onSubmit`
這是JSFiddle。
我使用Sinon來窺探該方法,但是我在進行間諜活動的方法似乎沒有被調用,當我嘗試模擬onSubmit
的form
標籤。使用TestUtils模擬ReactJS表單標籤不會觸發`onSubmit`
這是JSFiddle。
首先,這條線:
React.addons.TestUtils.Simulate.submit(Instance, form.getDOMNode());
應該是:
React.addons.TestUtils.Simulate.submit(form.getDOMNode());
但是,這並不能解決問題,因爲你的組件的構造方式。您已經將當前的_handleSubmit
函數給予React調用,並且React將調用該函數。它不會呼叫Instance._handleSubmit()
,這是你所取代的。如果你改變你的組件是這樣的:
var that = this; ... <form onSubmit={function() { that._handleSubmit()}}>
它的工作原理,因爲你顯式調用實例上的方法。
但我建議你不要斷言該方法被調用,而是聲稱它應該執行的任何副作用實際上都是執行的。像變異狀態,呼叫外部服務等。
我看到謝謝。我現在會給你的評論一個鏡頭。我會盡快發表評論。 – srph