2016-11-09 66 views
1

我有一种感觉,我很接近这个......我有一个待办事项列表应用程序,我正在建设。React Redux Set项目完成

用户可以点击标记为“完成”的按钮,将该特定项目标记为完整。

我对此的看法是,当用户单击该按钮仅将“已完成”状态更新为true时。

出于某种原因,在州内的文本从所选项目更改为“不确定”,然后点击“完成”

这里的时候,另一个项目增加到状态是我的行动:

export function completeTodo() { 
    return { 
     type: "COMPLETE_TODO", 
     completed: true 
    } 
} 

这里是我的减速器:

case "COMPLETE_TODO": { 
      return Object.assign({}, state, { 
       todos: [{ 
        text: action.text, 
        completed: action.completed, 
        id: getId(state) 
       }, ...state.todos] 
      }); 
     } 

回答

0

下面的代码创建一个新的todo对象新数组和以前所有的待办事项(所以基本上你添加一个待办事项的初学者从以前的状态数组)的ING:

[ 
    { 
    text: action.text, 
    completed: action.completed, 
    id: getId(state) 
    }, 
    ...state 
] 

你应该过滤掉老ToDo对象:

[ 
    { 
    text: action.text, 
    completed: action.completed, 
    id: getId(state) 
    }, 
    ...state.todos.filter(todo => todo.id !== getId(state)) 
] 
+0

不幸的是,这是行不通的。我遇到的主要问题是文本正在更新为“未定义”,我不确定原因。 – Filth

0

你COMPLETE_TODO行动不具有文本字段,以便减速分配不确定的州。

据我所知,你不想在完成时更改项目的文本属性。您可以从减速器中删除文本分配。