需要在redux的reducer中追加数组中的数据

Raj*_*mar 1 javascript reactjs redux react-redux

我正在做分页,我将获取每个页面点击的数据.我想用前面的值附加数据.这是我当前的代码.不知道这样做.

const InitialProjects={
    projectList:[],
    error:null,
    loading:false
}

export const projects=(state=InitialProjects,action)=>{
    switch(action.type){
        case ActionTypes.FETCH_PROJECTS:
            return Object.assign({},state,{
                projectList:[],error:null,loading:true
            })
        case ActionTypes.FETCH_PROJECTS_SUCCESS:
            return {
                projectList:action.payload

            }
        case ActionTypes.FETCH_PROJECTS_FAILURE:
            return Object.assign({},state,{
                projectList:["not-found"],error:action.payload.message||action.payload.status,loading:false
            })
        default:
            return state;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的第一个回答看起来像这样

[
{
  Id:0,
Name:india
},
{
Id:1,
Name:bang
},
{
Id:3,
Name:us
},
{
 Id:5,
Name:uk
}
]
Run Code Online (Sandbox Code Playgroud)

第二个回应就是这样

   [
    {
      Id:8,
    Name:india
    },
    {
    Id:12,
    Name:bang
    },
    {
    Id:19,
    Name:us
    },
    {
     Id:35,
    Name:uk
    }
    ]
Run Code Online (Sandbox Code Playgroud)

请注意,id字段可能不是连续的.我想在我的redux中想要这样的东西

projectList:
0(pin): {Id:1,Name:'dewd'}
1(pin): {Id:2,Name:'tyytg'}
2(pin): {Id:5,Name:'xsx'}
3(pin): {Id:4,Name:'tyyt'}
4(pin): {Id:10,Name:'xsx'}
5(pin): {Id:17,Name:'xsx'}
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助.谢谢

mer*_*lin 7

您可以在每次成功时传播结果.

case ActionTypes.FETCH_PROJECTS:
  return {
    ...state,
    error: null,
    loading: true,
  }
case ActionTypes.FETCH_PROJECTS_SUCCESS:
   return {
     ...state,
     projectList: [...state.projectList, ...action.payload]
    }
Run Code Online (Sandbox Code Playgroud)