首页 > 解决方案 > 如何在我的减速器中使用一个变量,用一个对象设置

问题描述

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

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 方面的专家。

标签: javascriptreactjs

解决方案


不知道我是否得到这个问题。您想action.payload.paginationName用作对象键而不是name? 如果是这样,您可以这样做:

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

基本上,[]允许您使用定义的变量作为对象中的键。


推荐阅读