javascript - 在反应中使用 XMLHttpRequest 正在刷新我的页面并重置我的状态
问题描述
我正在制作一个基本的应用程序来学习 React。我有一些数据存储在一个 JSON 文件中,我正在使用json-loader
. 但是我也想写入这个文件。我的后端有一个 python 脚本,它写入一个文件(我不相信这个脚本是问题,但如果需要我可以包含它)。
当用户单击“下一步”按钮时,我正在尝试向后端发送请求以更新 json 文件。问题是,每当单击按钮时,页面都会刷新并且状态会重置,这意味着用户无法在站点中前进。
这是有问题的按钮:
<button type="button" className="btn btn-info" id="continue_btn" onClick={() => nextStep()}>
Continue
</button>
和下一步():
const nextStep = () => {
if (step + 1 > progress[props.tutorial]["total-steps"])
return;
else {
updateStep();
setStep(step + 1);
}
};
和更新步骤():
const updateStep = () => {
let request = new XMLHttpRequest();
request.open("POST", `http://localhost:8000/store_progress/${props.page}/`, true);
request.setRequestHeader('Content-Type', 'application/json');
request.send(JSON.stringify({
"progress": step + 1
}));
}
JSON 文件确实被写入了正确的信息,我只需要取消页面重新加载,以便可以适当地更新状态并且用户可以在页面中前进。
如果需要,我很乐意提供任何其他信息。
谢谢!
解决方案
当您更新您的 json 文件时,您会触发 HMR,因为您在代码中导入该文件而不是从服务器获取它
推荐阅读
- java - 在运行时动态更改类字段的注释
- c - 如何在“问题”部分的 Vscode 上显示 C 中的错误代码
- amazon-web-services - 当 SSM 运行命令状态更改时终止 AWS EC2 实例
- wordpress - 如何在旋转滑块中移动图像而不移动接触形式
- javascript - 验证 Bootstrap 4 表单的两个复选框
- java - 是否建议在 java 中使用 PreparedStatement.setBoolean(1, Boolean.TRUE)?
- django-models - 如何解决这个问题,从 scrapy_djangoitem import DjangoItem ImportError: No module named scrapy_djangoitem
- django - 如何重新定义抽象模型中的属性?
- c# - 我如何将此编码器反转为解码器?
- python - 使用 HTML5 的角度拖放无法通过 Selenium 和 Python 工作