2017-08-25 46 views
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 | 

回答

4

您使用computed property name,並且不串插,你需要的屬性值賦值給一個變量爲此工作。

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);

+0

這似乎並不奏效嵌套的對象,不知道雖然。 – loganathan

+0

您的問題不包括任何嵌套的對象更改。您只需刪除一個屬性,該值是一個對象。我已經更新了示例以反映問題中的代碼。 –

+0

感謝它的工作 – loganathan

相關問題