如何用dirty set true初始化redux-form?

时间:2017-07-21 15:21:54

标签: redux-form react-redux-form

我有一个绑定到脏状态的保存按钮,当窗体变脏时,启用该按钮,否则禁用它。

这适用于编辑项目。但是当我添加一个项目时,默认情况下会禁用保存按钮,因为默认情况下dirty是 false

有没有办法将表单设置为脏状态?

3 个答案:

答案 0 :(得分:0)

还没有人回答这个问题。

我现在正在做的是为我的组件创建一个canSave道具。 canSave && dirty可以确定保存按钮的可见性状态。 添加项目时,canSave设置为true,保存按钮始终可见。 编辑项目时,canSave为false,可见性由dirty道具确定。

我仍然希望在这里找到一个更优雅的答案。

答案 1 :(得分:0)

您可以自己控制保存按钮的状态。您需要做的就是不要启用“保存/提交”按钮

答案 2 :(得分:0)

根据 Action Creators documentation的redux-form,您可以在初始化表单数据时执行以下操作:

import { initialize } from 'redux-form';

export const initializeForm = (formName, newData) => async (dispatch, getState) => {
  await dispatch(initialize(formName, newData, false));
};

此外,您可以在该函数中设置其他选项。

import { initialize } from 'redux-form';

export const initializeFormWithOldValues = (formName, newData) => async (dispatch, getState) => {
  await dispatch(initialize(formName, newData, false, { keepSubmitSucceeded: true, keepValues: true }));
};