首页 > 解决方案 > Redux 使用 Map() 形成初始值

问题描述

我有一个 redux 表单,我想将初始值属性设置为 Map 而不是对象。这是强制性的,我无法更改:P 因此,我设置了一个 initialValues 映射,如下所示:

export const initialValuesForm = (timeSlots, formValues) => {
  const initialValues = Map();
  const date = formValues[DATE_PICKER_FORM_FIELD] && formValues[DATE_PICKER_FORM_FIELD].startDate;
  const travelers = formValues[TRAVELERS_FORM];
  initialValues[POPUP_DATE_PICKER] = date;
  initialValues[TRAVELERS_FORM_SELECT] = travelers;

  return initialValues;
};

formValues 是一个对象,其中包含来自该状态的另一个表单的值。非常奇怪的情况是,当我使用表单打开弹出窗口时,值对象和初始对象是一个空对象。当我更改一个值时,所有值都会更新并位于地图内。我的 mapStatetoProps 函数是这样的: const mapStateToProps = (state) => { return { availability, locale, activityToBeAdded, popUpFormErrors, initialValues: initialValuesForm(timeSlots, searchFormValues) }; }; 为什么会这样?有任何想法吗?

标签: javascriptreactjsreduxredux-formimmutable.js

解决方案


推荐阅读