问题描述
已升级到最新版本(截至今天):
react-redux: 5.0.7 --> 7.2.1
redux-form: 7.4.2 --> 8.3.6
这样做之后,在排序,在字段中键入内容等时,会发现性能显着下降,最终出现以下错误,这会破坏应用程序:
错误:超出最大更新深度。当一个组件发生这种情况 重复调用componentwillUpdate内的setState或 componentDidUpdate。 React将嵌套更新的数量限制为 防止无限循环。
上述错误发生在
这是withForm HOC的代码段并进行连接(根据文档定义)
const withForm = reduxForm({
form: 'form-name',initialValues: {
...initVals
},onSubmit,validate,shouldError: () => true
});
export default compose(
connect,withForm,withStyles(styles)
)(MyComponent);
有人知道这可能是什么问题吗?
解决方法
出于某种原因升级到最新表单(请参阅问题)后,redux-form对我如何显式重置表单属性不满意。
const connectForm = reduxForm({
form: 'form-name',validate: values => {
const errors = {};
if (values.middle) {
values.first = '';
} else {
values.second = ''
values.third = '';
}
},destroyOnUnmount: false,initialValues: {
...initValues
}
});
因此产生了堆栈溢出。
使用内置的重置功能重置那些
import {reset} from 'redux-form';
...
dispatch(reset('myForm')); // requires form name