javascript - 第二次尝试反应功能松散状态
问题描述
这段代码在第一次和第三次尝试时都能正常工作,总会有一个步骤出错并且不向数据库发送数据,每次都会破坏我的业务逻辑,我尝试过和不重新加载页面都得到了相同的结果
apiCall = e => {
e.preventDefault();
window.scrollTo(0, 0);
this.setState({ loading: true });
const { currentUser } = fire.auth();
let userEmail = currentUser.email;
let userUnderscore = userEmail.replace(/\./g, '_');
let intervalMS = this.state.interval * 60000;
let url = `https://url.com/api/v1/${userUnderscore}/${this.state.urlTask}?url=${this.state.urlTask}&width=${this.state.width}&interval=${intervalMS}&user=${userUnderscore}&running=true`;
if (this.state.interval >= 1 && this.state.urlTask !== "") {
fetch(url)
}
else {
this.setState({ addURLError: true, loading: false });
}
this.setState({ addURL: true, addURLError: false });
fire.database().ref(`/master/users/${userUnderscore}/setup/`)
.update({
running: true,
interval: this.state.interval,
url: this.state.urlTask,
});
setTimeout(
function () {
this.setState({ addURL: false, running: true });
window.location.reload();
}.bind(this), 2000
);
}
...
<Button color='black' onClick={this.apiCall} animated='vertical' type='submit'>
编辑
函数和数据库实际上得到了更新,问题是第二次尝试状态为空,即使表单保存值
解决方案
我通过在任何尝试执行该功能之前重新加载应用程序来解决这个问题,这样总是有一个新的状态可以使用:window.location.reload();
推荐阅读
- ubuntu - DNS hoster 工作异常或不工作,如何检查?
- c++ - 类模板在其构造函数中的模板变量推导失败
- asp.net-mvc - HTML 助手
不包含“剑道”的定义 - 服务器错误 - ios - 使用 AFNetworking 上传图像
- javascript - 在 componentDidMount 上触发转换
- javascript - 如何使用 Ajax 将 WebGrid 发布到控制器
- django - Docker/Kubernetes + Gunicorn/Celery - 多个工人与副本?
- python - Py4JJava错误 | java.lang.IllegalArgumentException | 来自 Jupyter 的 Spark 错误 | 计数()不工作
- tensorflow - 无法在张量流中创建 MultiRNN 单元
- actionscript-3 - AS3 - 在 StageVideo 上检测触摸/点击