gpt4 book ai didi

javascript - Reactjs 在单击按钮时多次触发 AJAX 调用(每次单击只需要 1 次!)

转载 作者:行者123 更新时间:2023-12-03 05:04:16 25 4
gpt4 key购买 nike

我有一个简单的 React 应用程序,其中有一个表单,当用户单击“提交”时,将表单发布到服务器。足够简单。

但是 React 会立即连续多次(通常为 4-5 次)触发 AJAX 调用,从而产生各种问题。我不知道为什么 - 我认为它与 React 的生命周期有关,但我不确定。

我使用 axios 作为 AJAX 库,所以问题可能出在该库上(但我认为不是)。

这是触发代码的方法:

submitEvent(event) {
event.preventDefault();
const apiQueryString = `api/event?${qs.stringify(this.state)}`;
if (this.state.event_title === undefined) {
alert('Event title is required!');
} else {
axios.post(apiQueryString)
.then((result) => {
this.state.id = result.data[0];
store.dispatch({
type: 'ADD_SINGLE_EVENT',
event: this.state,
});
alert('Success creating event!');
this.setState({}); // clear out old values
browserHistory.push('/');
})
.catch((error) => {
console.log(error);
alert('Error with database! See console for output.');
});
}

这是触发此功能的按钮:

<button onClick={this.submitEvent} className="btn btn-primary">Submit</button>

整个文件的源代码是here ,工作页面为here .

感谢您提供的任何帮助。

最佳答案

问题出在中间件上。在后端处理此 AJAX 请求的方法中,在成功回调 req.getValidationResult() 后,将一个新项目插入到数据库中。此成功回调被调用两次,导致多次数据库插入。

关于javascript - Reactjs 在单击按钮时多次触发 AJAX 调用(每次单击只需要 1 次!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42079549/

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