Я только что обновил форму Redux для своего проекта React с v6.8 до v7.4.2, и у меня возникают проблемы с вызовом mapStateToProps для каждого элемента поля, имеющегося у меня в форме.
Все мои формы работали нормально под v6.8, но проблема возникла, когда я обновился.Форма в конечном итоге отрисовывается, но если у меня есть большая форма с различной логикой для получения начальных значений, для их рендеринга потребуется много времени.
Я не вижу руководств по переходу с v6 на v7и я не могу найти подобные проблемы здесь.Что мне нужно сделать, чтобы решить эту проблему?
Функция рендеринга в компоненте формы запускается только один раз, а componentDidUpdate также запускается только один раз при загрузке компонента.
Вот как я установил Redux Form в компоненте в упрощенной форме:
function getInitialValues() {
return { field1: 'value for field 1' };
// this function can be quite long so if called many times, that would be very time consuming.
}
DocumentComponent = reduxForm({
form: 'documentForm',
enableReinitialize: true,
})(DocumentComponent);
function mapStateToProps(state) {
initialValues = getInitialValues();
console.log('mapStateToProps called');
// logs 2 times when there is 1 Field, 11 times when there are 10 Fields and there would be 101 times if there are 100 Fields.
return {
initialValues
};
}
}
export default connect(mapStateToProps, actions)(DocumentComponent);