gpt4 book ai didi

javascript - 使用TestUtils模拟ReactJS表单标签不会触发 `onSubmit`

转载 作者:行者123 更新时间:2023-12-03 10:20:23 27 4
gpt4 key购买 nike

我正在使用Sinon来监视该方法,但是当我尝试模拟onSubmit时,我正在监视的方法似乎根本没有被调用在 form 标记上。

这是一个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()}}>

它之所以有效,是因为您显式调用了实例上的方法。

但我建议您不要断言该方法已被调用,而是断言它应该执行的任何副作用实际上都已执行。例如改变状态、调用外部服务等。

关于javascript - 使用TestUtils模拟ReactJS表单标签不会触发 `onSubmit`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com