gpt4 book ai didi

reactjs - redux-form isDirty 成功提交后不重置

转载 作者:行者123 更新时间:2023-12-04 17:53:16 24 4
gpt4 key购买 nike

我正在使用 isDirty 检查是否输入了表单值(并基于此禁用其他内容)。

import { isDirty } from 'redux-form';
const mapStateToProps = state => ({
isFormDirty: isDirty('myform')(state)
});

这很好用,因为当表单值更改时,我想禁用的按钮会被禁用。当我发送 reset redux-form action creator 时,它们也会启用。

但是,成功提交表单并不会清除脏状态。我通过 isDirty 检查禁用的按钮保持禁用状态。

我是否需要手动告诉 redux-form 表单现在是原始的?以及如何做到这一点?

最佳答案

我现在通过从作为 onSubmit 传递到表单的 Action 创建者调度 initialize Action 来解决这个问题。

import { getFormInitialValues, initialize } from 'redux-form';
export function saveData(data) {
return (dispatch, getState) => { // this is redux-thunk
api.saveSomething(data).then(newData => {
// dispatch some actions
dispatch(someAction(newData));
let activeFormValues = getFormInitialValues('myform')(getState());
if (activeFormValues.id === data.id) { // Reset the form with new initialValues
dispatch(initialize('myform', newData, false, { keepSubmitSucceeded: true }));
}
});
};
}

关于reactjs - redux-form isDirty 成功提交后不重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42612309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com