[Redux] Writing a Todo List Reducer (Toggling a Todo)
List redux TODO Writing reducer
2023-09-14 08:59:20 时间
Learn how to implement toggling a todo in a todo list application reducer.
let todo = (state = [], action) => { switch(action.type){ case 'ADD_ITEM': return state = [ ...state, { text: action.text, id: action.id, completed: false } ]; case 'TOGGLE_ITEM': return state.map( (todo) => { if(todo.id !== action.id){ return todo; }else{ return { ...todo, completed: !todo.Completed// will overwirte the todo object's completed prop }; } }) default: return state; } }; let testTodo_addItem = () => { let stateBefore = []; let action = { type: 'ADD_ITEM', text: 'Learn Redux', id: 0 }; let stateAfter = [ { text: 'Learn Redux', id: 0, completed: false, } ]; deepFreeze(stateBefore); deepFreeze(action); expect( todo(stateBefore, action) ).toEqual(stateAfter); }; let testTodo_toggleItem = () => { let stateBefore = [ { text: 'Learn Redux', id: 0, completed: false }, { text: 'Learn Angular2', id: 1, completed: false } ]; let action = { type: 'TOGGLE_ITEM', id: 1 }; let stateAfter = [ { text: 'Learn Redux', id: 0, completed: false }, { text: 'Learn Angular2', id: 1, completed: true } ]; deepFreeze(stateBefore); deepFreeze(action); expect( todo(stateBefore, action) ).toEqual(stateAfter); } testTodo_toggleItem(); console.log("All tests passed!");
相关文章
- hdu 1671 Phone List 统计前缀次数
- Redux系列02:一个炒鸡简单的react+redux例子
- Python中实现对list做减法操作介绍
- [Redux] React Todo List Example (Filtering Todos)
- [Redux] Writing a Todo List Reducer (Adding a Todo)
- list去除重复数据
- [Algorithm] 234. Palindrome Linked List / Reverse linked list
- 【RF库Collections测试】Get From List
- list容器之构造函数
- how drop down list description is displayed by UI framework
- 使用代码获得table whered use list
- SAP Spartacus List Component 里定义的待显示 Popover 内容,如何传递到 Popover Component 里的?
- 成功解决极其刁钻bug之TypeError: ‘<=‘ not supported between instances of ‘list‘ and ‘int‘
- 【项目实战】JSONUtil.toJsonStr将List转String还会失败?
- Java中List与Set相互转化
- Java类集-list
- spring xml properties split with comma for list
- python基础===两个list之间移动元素
- ERROR: default sources list file already exists: /etc/ros/rosdep/sources.list.d/20-default.list