formSlice.ts 893 B

12345678910111213141516171819202122232425262728293031
  1. import { createSlice, PayloadAction } from '@reduxjs/toolkit';
  2. interface FormState {
  3. // eslint-disable-next-line @typescript-eslint/no-explicit-any
  4. formData: Record<string, any>;
  5. }
  6. const initialState: FormState = {
  7. formData: {},
  8. };
  9. const formSlice = createSlice({
  10. name: 'form',
  11. initialState,
  12. reducers: {
  13. // eslint-disable-next-line @typescript-eslint/no-explicit-any
  14. setFormData: (state, action: PayloadAction<Record<string, any>>) => {
  15. state.formData = { ...state.formData, ...action.payload };
  16. },
  17. getFormData: (state) => state, //其实这里用不到
  18. // 清空表单数据
  19. clearFormData: (state) => {
  20. state.formData = {};
  21. console.log('Redux formSlice: 表单数据已清空');
  22. },
  23. },
  24. });
  25. export const { setFormData, getFormData, clearFormData } = formSlice.actions;
  26. export type { FormState };
  27. export default formSlice.reducer;