You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用React Redux Toolkit处理表单多输入并提交存至Redux Store

你的初始实现思路是合理的,本地用useState维护输入状态、仅提交时同步到Redux store的做法,可以避免输入过程中频繁触发store更新和关联组件重渲染,只需要修正两处代码错误即可正常运行:


1. 组件提交逻辑修改

你定义的setUser是需要接收表单数据作为入参的action生成函数,提交时需要把本地维护的user对象作为参数传入,修改handleSubmit逻辑:

const handleSubmit = (e) => {
  e.preventDefault();
  // 把本地的user对象作为payload传给action
  dispatch(setUser(user));
};

2. slice代码修改

import { createSlice } from "@reduxjs/toolkit";

export const userSlice = createSlice({
  name: "user",
  initialState: {
    length: null,
    width: null
  },
  reducers: {
    setUser: (state, action) => {
      // 初始state没有外层user字段,直接修改对应属性即可
      state.length = action.payload.length;
      state.width = action.payload.width;
    }
  }
});

// 移除多余的user导出,actions中只有你定义的setUser方法
export const { setUser } = userSlice.actions;
export const selectUser = (state) => state.user;
export default userSlice.reducer;

内容的提问来源于stack exchange,提问作者oldskool123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:45:03