default-parameters.txt 716 B

1234567891011121314151617181920212223242526272829303132
  1. function visibleTodoFilter(state = 'watch', action) {
  2. switch (action.type) {
  3. case 'CHANGE_VISIBLE_FILTER':
  4. return action.filter;
  5. default:
  6. return state;
  7. }
  8. }
  9. function todos(state, action) {
  10. switch (action.type) {
  11. case 'ADD_TODO':
  12. return [...state, {
  13. text: action.text,
  14. completed: false
  15. }];
  16. case 'COMPLETE_TODO':
  17. return [
  18. ...state.slice(0, action.index),
  19. Object.assign({}, state[action.index], {
  20. completed: true
  21. }),
  22. ...state.slice(action.index + 1)
  23. ]
  24. default:
  25. return state;
  26. }
  27. }
  28. import { combineReducers, createStore } from 'redux';
  29. let reducer = combineReducers({ visibleTodoFilter, todos });
  30. let store = createStore(reducer);