如何在 REST 操作中进行字符串插值

3
有人能给我提供一种最佳方法使用解构从对象中删除属性吗?我想要从下面的对象中移除单个任务。
Object {task111: Object, task113: Object, task114: Object}

const taskId = `task${action.task.id}`;
{ [taskId]: discard, ...newState } = state;
return newState;

错误:

 ./src/reducers/taskReducer.js
Syntax error: Unexpected token, expected ; (32:13)

  30 |      
  31 |          const taskId = `task${action.task.id}`
> 32 |          { [taskId]: discard, ...newState } = state;
     |                    ^
  33 |          return newState
  34 |   
1个回答

4

你正在使用计算属性名称,而不是字符串插值,并且需要将属性值分配给变量才能使其起作用。

const state = {task111: { a: 1 }, task113: { b: 2 }, task114: { c:  3 }};

const action = {
  task: {
    id: 113
  }
};

const taskId = `task${action.task.id}`;

const { [taskId]: discard, ...newState } = state;

console.log(newState);


这似乎对嵌套对象不起作用,但我不确定。 - loganathan
你的问题中没有包含任何嵌套对象的更改。你只是删除了一个属性,其值是一个对象。我已经更新了示例以反映问题中的代码。 - Ori Drori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接