-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.js
36 lines (36 loc) · 925 Bytes
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import React, { Component } from "react";
import { createStore } from "redux";
import { Provider } from "react-redux";
import Layout from "./layout/layout";
export const REMOVE = "REMOVE_ITEM";
const DEFAULT_STATE = {
todos: [],
completed: 0
};
const reducer = (state = DEFAULT_STATE, action) => {
const { type, payload } = action;
switch (type) {
case "ADD_ITEM":
return { ...state, todos: [...state.todos, payload.todo] };
case "REMOVE_ITEM":
return {
...state,
todos: state.todos.filter(item => item !== payload.todo)
};
case "CHANGE_COMPLETE":
console.log(state.completed);
return { ...state, completed: state.completed + 1 };
default:
return state;
}
};
const store = createStore(reducer);
export default class App extends Component {
render() {
return (
<Provider store={store}>
<Layout />
</Provider>
);
}
}