Skip to content

Commit 5a24ae7

Browse files
committed
naive connecting
1 parent 932838a commit 5a24ae7

File tree

1 file changed

+44
-3
lines changed

1 file changed

+44
-3
lines changed

src/index.js

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,49 @@ const store = createStore(rootReducer);
8888

8989
// view layer
9090

91-
function TodoApp() {
92-
return <div>Todo App</div>;
91+
function TodoApp({ todos, onToggleTodo }) {
92+
return <TodoList
93+
todos={todos}
94+
onToggleTodo={onToggleTodo}
95+
/>;
9396
}
9497

95-
ReactDOM.render(<TodoApp />, document.getElementById('root'));
98+
function TodoList({ todos, onToggleTodo }) {
99+
return (
100+
<div>
101+
{todos.map(todo => <TodoItem
102+
key={todo.id}
103+
todo={todo}
104+
onToggleTodo={onToggleTodo}
105+
/>)}
106+
</div>
107+
);
108+
}
109+
110+
function TodoItem({ todo, onToggleTodo }) {
111+
const { name, id, completed } = todo;
112+
return (
113+
<div>
114+
{name}
115+
<button
116+
type="button"
117+
onClick={() => onToggleTodo(id)}
118+
>
119+
{completed ? "Incomplete" : "Complete"}
120+
</button>
121+
</div>
122+
);
123+
}
124+
125+
function render() {
126+
ReactDOM.render(
127+
<TodoApp
128+
todos={store.getState().todoState}
129+
onToggleTodo={id => store.dispatch(doToggleTodo(id))}
130+
/>,
131+
document.getElementById('root')
132+
);
133+
}
134+
135+
store.subscribe(render);
136+
render();

0 commit comments

Comments
 (0)