Javascript Redux Reducer-如何将此状态保存为对象?(I&“x27;m得到“解析错误”)

Javascript Redux Reducer-如何将此状态保存为对象?(I&“x27;m得到“解析错误”),javascript,object,object-literal,Javascript,Object,Object Literal,我的代码如下所示: import { SAVE_SEARCH } from '../actions/index'; export default function (state = [], action) { switch (action.type) { case SAVE_SEARCH: return [...state, action.payloadTwo, action.payloadOne]; default: return state;

我的代码如下所示:

import { SAVE_SEARCH } from '../actions/index';

export default function (state = [], action) {
  switch (action.type) {
    case SAVE_SEARCH:
      return [...state, action.payloadTwo, action.payloadOne];
    default:
      return state;
  }
}
我在我的州里得到了这样的结果:

它可以工作,但这是一个数组。我想将其更改为object,如下所示:

    case SAVE_SEARCH:
      return [...state, { action.payloadTwo: action.payloadOne }];
因此searchTerm将是对象中的键,数据将另存为对象键值

但这段代码给了我一个错误:

我知道这对你来说是显而易见的。为什么我不能这样编码?为什么会出现“解析错误”


--------------

编辑:

非常感谢@marekful的回答!现在它工作了

My action.js代码:

import axios from 'axios';

export const SAVE_SEARCH = 'SAVE_SEARCH';

export function searchTest(query) {
  const githubApi = `https://api.github.com/search/repositories?q=${query}&sort=stars&order=desc`;
  const request = axios.get(githubApi);
  return (dispatch) => {
    request.then(({ data: dataFromGithub }) => {
      dispatch({ type: SAVE_SEARCH, payloadOne: query, payloadTwo: dataFromGithub });
    });
  };
}
减速器代码:

import { SAVE_SEARCH } from '../actions/index';

export default function (state = [], action) {
  switch (action.type) {
    case SAVE_SEARCH:
      const o = {};
      o[action.payloadOne] = action.payloadTwo;
      return [...state, o];
    default:
      return state;
  }
}
结果:


在对象文本中,键只能是字符串文本(值可以是对象引用):
{“someKey”:object.property}

但是,您可以使用数组表示法将对象引用或函数返回值用作对象键(但它仍然必须是字符串):


在对象文字中,键只能是字符串文字(值可以是对象引用):
{“someKey”:object.property}

但是,您可以使用数组表示法将对象引用或函数返回值用作对象键(但它仍然必须是字符串):


使用ES6,您可以直接使用:
返回[…状态,{[action.payloadTwo]:action.payloadOne]}]

使用ES6,您可以直接使用:
返回[…状态,{[action.payloadTwo]:action.payloadOne]}]

删除操作。在属性nameremove操作中。在属性名Ok中,但我想我没有完全理解它,因为现在我得到了这个:0{[object]:“test”}好的,对不起,现在它工作了,我很快会在我的问题中编辑它!好的,但是我想我没有完全理解它,因为现在我得到了这个:0{[object]:“test”}好的,对不起,现在它工作了,我很快会在我的问题中编辑它!
let o = {};
o[action.payloadTwo] = action.payloadOne;
return [...state, o];