【发布时间】:2021-11-30 05:20:55
【问题描述】:
我有一个 fetch 调用,用户可以在其中上传图片然后发布。
但是,我想在发布图像时使用加载器向用户显示。我的问题是我的加载程序总是显示。始终显示文本 something is loading。我只想在请求待处理时显示文本。可以请我帮忙吗=
export default function ImageUpload() {
const [spinner, setSpinner] = useState(false);
function upload(){
//some data to post the image
fetch('my/API/Endpoint'), {
method: 'post',
body: body,
})
.then(function(data){
setSpinner(true);
};
}
return (
<>
<input type="file"/>
<input onClick={upload}/>
{spinner && (
<p>something is loading</p>
)}
</>
);
}
我确实想指出,发布和获取图像背后的逻辑确实有效,我确实得到了状态 200!它只是不起作用的加载消息
【问题讨论】:
-
你应该在 fetch 之前使用 setSpinner(true),在 fetch 内部,setSpinner(false)