如何在我的reducer中使用变量设置对象

时间:2018-09-24 10:48:13

标签: javascript reactjs

使用我的一个变量作为对象时,我遇到了一些问题。

import React from 'react'

const PaginationReducer = function(state = {}, action){

 switch(action.type){


    case 'PAGINATION_INIT_REDUCER' :

        console.log('REDUCER RECEIVED ' +  action.payload.currentPage); 
        state[ action.payload.name ] =  action.payload.value;
        state[action.payload.totalPage] = action.payload.totalPage
        state[action.payload.currentPage] = action.payload.currentPage
        return { ...state }
        break;

        case 'PAGINATION_CHANGE' :

        var newPagination = {totalPage : action.payload.totalPage, currentPage:action.payload.currentPage }
        var name= action.payload.paginationName;
        return { ...state, name : newPagination }}
        break;


}

return state;

}

导出{PaginationReducer}

我的问题是使用名称,我找不到一种方法来获取action.payload.paginationName作为我的密钥。

我不是Js专家。

2 个答案:

答案 0 :(得分:1)

不确定是否收到问题。您想使用action.payload.paginationName而不是name作为对象键吗?如果是这样,您可以这样做:

return {
  ...state,
  [action.payload.paginationName] : newPagination,
}

基本上,[]使您可以将变量定义为对象中的键。

答案 1 :(得分:0)

也使用name属性初始化状态。

const PaginationReducer = function(state = {name:{}, action){