首页 > 解决方案 > 使用 mutator react final form 更新表单状态时出错

问题描述

我正在尝试通过在下面编写函数来使用 react final form mutators 更新表单状态中的值

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

我是对最终表格做出反应的新手,任何人都可以就这个问题提出任何想法或建议。

提前致谢

标签: javascriptreactjsreact-final-formmutatorsreact-final-form-arrays

解决方案


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

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

推荐阅读