如何在同一个reducer函数react.js中更改嵌套对象字段和列表的状态值?

问题描述

我正在开发一个 react.js 应用程序,我使用 redux 进行状态管理,现在我想一次更改多个字段的状态值,一个是嵌套对象,另一个是列表。

这是我的初始数据:

    const initialState = {
      openCreatePopup: false,clientList: [],clientName:"",clientStatus:"",clientGrantList: [],clientAccessGrants:[],clientListParams: Object.assign({},defaultListParams),searchTerm: "",searchedClientList: [],searchedListParams: Object.assign({},defaultsearchedListParams),formDetails: Object.assign({},emptyFormDetails),formData: Object.assign({},emptyFormData),scrollToIndex: 0,};

const emptyFormDetails = {
  selectedindex: null,isSubmitting: false,editId: null,isEditForm: false,isDetailsForm: false,};

export const emptyFormData = {
  status: "A",label: "",};

现在我想更改 editIdisEditForm 的值,它位于 formDetailsinitalData 中,还想更改数组 clientList 中的更改值。我该怎么做?>

这是我在做什么:

case Actions.ON_EDIT_CLICK:
      return { 
        ...state,clientList: state.clientList.map(
            (client,i) => client.client_id === action.clientId ? {...client,clientname: state.clientName,clientstatus:state.clientStatus,clientaccessgrants:state.clientAccessGrants}
                                    : client
        ),formDetails:Object.assign({},state.formDetails,{
          editId:action.clientId,isEditForm:true,isDetailsForm:false
        })
      };

这是正确的做法吗?有人可以帮忙吗? 谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)