|
|
@@ -19,9 +19,22 @@ const formSlice = createSlice({
|
|
|
},
|
|
|
getFormData: (state) => state, //其实这里用不到
|
|
|
// 清空表单数据
|
|
|
- clearFormData: (state) => {
|
|
|
- state.formData = {};
|
|
|
- console.log('Redux formSlice: 表单数据已清空');
|
|
|
+ clearFormData: (state, action: PayloadAction<string[] | undefined>) => {
|
|
|
+ const exceptFields = action.payload || [];
|
|
|
+ if (exceptFields.length > 0) {
|
|
|
+ // 保留指定字段的值
|
|
|
+ const preservedData: Record<string, any> = {};
|
|
|
+ exceptFields.forEach(field => {
|
|
|
+ if (state.formData[field] !== undefined) {
|
|
|
+ preservedData[field] = state.formData[field];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ state.formData = preservedData;
|
|
|
+ console.log(`Redux formSlice: 表单数据已清空,但保留了字段: ${exceptFields.join(', ')}`);
|
|
|
+ } else {
|
|
|
+ state.formData = {};
|
|
|
+ console.log('Redux formSlice: 表单数据已清空');
|
|
|
+ }
|
|
|
},
|
|
|
},
|
|
|
});
|