问题描述
我正在使用与antd框架的反应。我创建了一个表单并处理了提交:
我的forms.js
:
import React from 'react';
import { Form,Input,Button,notification } from 'antd';
import axios from 'axios';
class CustomForm extends React.Component {
handleFormSubmit = (event,requestType,articleId) => {
const title = event.target.elements.title.value;
const content = event.target.elements.content.value;
notification.open({
message: 'Success',description:
'Your Response is submitted',onClick: () => {
console.log('Notification Clicked!');
},onCancel: () => {
}
});
// eslint-disable-next-line
switch (requestType) {
case 'post':
return axios.post('http://localhost:8000/api/',{
title:title,content:content
}
)
.then (res => console.log(res))
.catch(err => console.error(err))
case 'put':
return axios.put(`http://localhost:8000/api/${articleId}/`,content:content
})
.then (res => console.log(res))
.catch(err => console.error(err))
}
}
render(){
return (
<div>
<Form onSubmitCapture={(event) => this.handleFormSubmit(event,this.props.requestType,this.props.articleId)} >
<Form.Item label="Title">
<Input name='title' placeholder="Input some title" />
</Form.Item>
<Form.Item label="Content">
<Input name='content' placeholder="Input some content" />
</Form.Item>
<Form.Item>
<Button type="primary" htmlType='submit' >{this.props.btntext}</Button>
</Form.Item>
</Form>
</div>
)
}
};
export default CustomForm;
使用它,我可以从用户那里获得输入并显示成功通知。但是,当我尝试在window.location.reload(true)
中使用此代码handleFormSubmit
时收到通知时,我想在5秒后重新加载页面,这不允许进行通知。
解决方法
您可以使用setTimeout(() => window.location.reload(true),5000);
此代码