使用mutator更新最终状态时出现错误

时间:2020-05-12 19:41:51

标签: javascript reactjs react-final-form mutators react-final-form-arrays

我试图通过在下面编写函数

来使用react最终形式更改器更新表单状态中的值
const setProjectSelectedMutator = ([value], formState, tools) => {
tools.changeValue(formState, () => value && value.isSelectedInProject === true);
}; 

然后我像下面那样调用该mutate函数,

if (!once) {
    if (
      form &&
      values.spaceType.mechanicalData[mappedLibrarySourceArray] &&
      values.spaceType.mechanicalData[mappedLibrarySourceArray][index]
    ) {
      //  values.spaceType.mechanicalData[mappedLibrarySourceArray][
      //    index
      //  ].isSelectedInProject = true;
      form.mutators.setProjectSelectedMutator(
        values.spaceType.mechanicalData[mappedLibrarySourceArray][index].isSelectedInProject
      );
      setOnce(true);
    }
  }

我想使用mutator函数将布尔值设置为true,就像我正在设置布尔值(在注释代码中提到)一样,并得到类似mutate is not a function的错误。

我是刚开始回应最终形式的人,请问有人可以就此问题提出任何想法或建议。

预先感谢

1 个答案:

答案 0 :(得分:0)

我认为您忘记了具有字段名称的第二个参数。我已将"SOME NAME"字符串添加到您的代码中。

const setProjectSelectedMutator = ([value], formState, tools) => {
tools.changeValue(formState, "SOME NAME", () => value && value.isSelectedInProject === true);
};