reactjs - 在 ReactJS 中使用 ReduxForm 提交表单后清除表单字段
问题描述
成功提交表单后,我调用了 destroy() 来清除 redux 表单文档中给出的字段
result = (values) => {
const { history } = this.props;
this.props.dispatch(addVisitors(values)).then(
(success) => {
toast.success(success);
history.push('/visitors');
this.props.destroy();
},
(error) => {
toast.error(error);
}
);
};
解决方案
this.props.resetForm()
提交成功后,您可以从表单内部调用。
submitMyForm(data) {
const {createRecord, resetForm} = this.props;
return createRecord(data).then(() => {
resetForm();
// do other success stuff
});
}
render() {
const {handleSubmit, submitMyForm} = this.props;
return (
<form onSubmit={handleSubmit(submitMyForm.bind(this))}>
// inputs
</form>
);
}
您可以reset()
从任何连接的组件进行调度非常灵活,但您必须知道您的表单名称并提供调度。
import {reset} from 'redux-form';
...
dispatch(reset('myForm')); // requires form name
使用您的代码,我认为您可以使用
import {reset} from 'redux-form';
...
result = (values) => {
const { history } = this.props;
this.props.dispatch(addVisitors(values)).then(
(success) => {
toast.success(success);
history.push('/visitors');
this.props.dispatch(reset('myForm')) // Change to your form name
},
(error) => {
toast.error(error);
}
);
};
推荐阅读
- google-cloud-dataproc - Terraform dataproc 集群设置问题
- visual-studio - IIS 快速配置路径
- r - 为什么中位数和合并不适用于奇数行?
- go - 如何跳过失败的测试
- php - 来自数据库的文件状态的Laravel问题
- javascript - 如何让我的倒数计时器显示小时
- php - 将服务器 php 版本从 5.5 更改为 5.6 时,无法从 Codeigniter 2.2.6 的根文件夹中获取 .css 文件
- c++ - increment a number based on condition
- bash - How to create array of functions from command line in bash?
- jenkins - circleCI 可以像 Jenkins 一样防止错误的提交登陆 master 吗?