微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在同一个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 举报,一经查实,本站将立刻删除。