javascript - 创建按钮加载状态
问题描述
我有一个执行 API 调用的按钮。我想在加载数据时显示加载状态
这就是他们在反应文档中处理网络请求的方式
function simulateNetworkRequest() {
return new Promise(resolve => setTimeout(resolve, 2000));
}
这就是我需要的
function simulateNetworkRequest () {
return new Promise(axios.post('http://localhost:5000/'))
}
但它会抛出这个错误:
类型错误:axios__WEBPACK_IMPORTED_MODULE_1___default.a.post(...) 不是函数
解决方案
如果你想要一个改变他状态的按钮,你可以像这样使用
import * as React from "react";
import axios from "axios";
export default function App() {
const [isLoading, setIsLoading] = React.useState(false);
const handleClick = () => {
setIsLoading(true);
axios
.post("http://localhost:5000/")
.then(response => {
setIsLoading(false);
//set some data from response
})
.catch(error => {
setIsLoading(false);
//handle error
});
};
return (
<div className="App">
<button type="button" onClick={() => handleClick()}>
{isLoading ? `Loading` : `get data`}
</button>
</div>
);
}
推荐阅读
- html - 应用旋转会破坏阴影效果
- javascript - 使 CKEditor 图像导入器不添加尺寸
- c# - AddDbContextPool - 提高性能
- prestashop - 为所有产品添加全局自定义字段 - PrestaShop 1.6
- html - 从命令行操作、处理 HTML
- angularjs - amDateFormat 正在破坏 AngularJS 中的 amTimezone
- javascript - 查询一个csv文件,得到最接近我的经纬度的记录
- linux - 是什么导致我的 rsyslog 时区偏移和/或时间不正确?
- java - 多个媒体播放器合二为一
- bash - 使用多行和选项卡解析存储在 syslog-ng 系统中的 Windows 事件日志