首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将一系列对象与对象分离

如何将一系列对象与对象分离
EN

Stack Overflow用户
提问于 2021-07-04 08:16:19
回答 1查看 37关注 0票数 0

我正在使用一个useReducer,这就是我所拥有的:

代码语言:javascript
复制
const initialState = {
    optionalFilter: {
      take: Math.round((window.innerHeight - 330) / 34),
      page: 1,
    },
    reportFilter: {
      searchItem:[],
      dateFilter: {
        StartDate:new Date(new Date().setDate(new Date().getDate() - 3100)),
        EndDate:new Date(),
      },
     
    }, 
  };
const reducer = (state, action) => {
    switch (action.type) {
      case "changeFilter":
        console.log("action",action.payload)
        return updateObject(state, {
          optionalFilter: updateObject(state.optionalFilter, {
            page: 1,
          }),
          reportFilter: updateObject(state.reportFilter, {
            searchItem: action.payload,
          }),
          reportFilter: updateObject(state.reportFilter.dateFilter, {
            StartDate:new Date(new Date().setDate(new Date().getDate() - 3100)),
        EndDate:new Date(),
          }),
        });
    }
  };

当我想应用填充.For示例时,当我得到一个操作控制台时,我有这样一个数组:

控制台action.payload==>{property:"StartDate:,value:"12.12.12"}{property:"EndDate:,value:“13.13.12”}{property:“StartDate:,value:”StartDate“}{property:”name“:,value:"name"} }

如何在state.reportFilter.dateFilter中使用StartDate和EndDate值,以及如何将其余的值放在searchItem数组中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-04 09:15:18

请通过替换减速机方法来尝试此代码。

代码语言:javascript
复制
const reducer = (state, action) => {
    switch (action.type) {
      case "changeFilter":
        console.log("action",action.payload)
        return updateObject(state, {
          optionalFilter: updateObject(state.optionalFilter, {
            page: 1,
          }),
          reportFilter: updateObject(state.reportFilter, {
            searchItem: action.payload.filter(val => val.property !== "StartDate" &&  val.property !== "EndDate");,
          }),
          reportFilter: updateObject(state.reportFilter.dateFilter, {
            StartDate:action.payload.find(val => val.property === "StartDate").value,
        EndDate:action.payload.find(val => val.property === "EndDate").value,
          }),
        });
    }
  };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68242862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档