【发布时间】:2021-11-02 09:12:23
【问题描述】:
当上传带有反应的表单时,状态并没有像更新一秒钟那样更新然后返回输入的值我不知道为什么会发生这种情况
Gif showing the code behaivour
这些是状态
const [values, setValues] = useState({
// Single File upload hooks
singleFile: {},
selectSingleFile: false,
singleTitle: '',
singleArtist: '',
open: false,
// Multiple File upload hooks
multipleFiles: [],
selectMultipleFiles: false,
multipleTitle: '',
multipleArtist: '',
uploadStatus: Number,
});
这是句柄提交代码
const handleSubmit = (event) => {
// converting into the form object
const formData = new FormData();
formData.append('title', values.singleTitle);
formData.append('artist', values.singleArtist);
formData.append('file', values.singleFile);
// making request to the server
let reqOptions = {
url: '/music/singleFile',
method: 'POST',
data: formData,
};
axios.request(reqOptions).then(function (response) {
console.log(response);
setValues({ ...values, uploadStatus: response.status });
});
// Setting the hook back to default values
setValues({
...values,
singleFile: {},
selectSingleFile: false,
singleTitle: '',
singleArtist: '',
open: true,
});
event.preventDefault();
};
Form Code
【问题讨论】:
-
在 api 调用发生之前状态正在清除。您应该在 .then 中清除您的状态,而不是在结尾/
-
是的,从您的解决方案中了解,谢谢????
标签: javascript reactjs material-ui