質問編集履歴

2

useEffectを追加

2020/11/15 11:05

投稿

jhon_connor
jhon_connor

スコア9

test CHANGED
File without changes
test CHANGED
@@ -16,15 +16,33 @@
16
16
 
17
17
  ```
18
18
 
19
- const selectTodoIds = (state) => state.todos.map((todo) => todo.id);
20
-
21
19
 
22
20
 
23
21
  const TodoList = () => {
24
22
 
23
+ const dispatch = useDispatch();
24
+
25
+ useEffect(
26
+
27
+ () => {
28
+
29
+ // サーバーからユーザーのTodoリスト持ってくる。
30
+
25
- const todoIds = useSelector(selectTodoIds, shallowEqual);
31
+ const todos = ContentService.getAllTodo();
32
+
33
+ // stateにコンテンツをセット
34
+
35
+ dispatch({ type: 'SET_TODOS', payload: todos });
36
+
37
+ // useSelector を使ってstateからtodoを参照
38
+
39
+ }
40
+
41
+ )
26
42
 
27
43
 
44
+
45
+ const todoIds = useSelector((state) => state.todos.map(todo => todo.id));
28
46
 
29
47
  const renderedListItems = todoIds.map((todoId) => {
30
48
 
@@ -46,6 +64,8 @@
46
64
 
47
65
  };
48
66
 
67
+ const todoIds = useSelector((state) => state.todos.map(todo => todo.id));
68
+
49
69
 
50
70
 
51
71
  const mapDispatchToProps = (dispatch) => {
@@ -60,14 +80,6 @@
60
80
 
61
81
  }
62
82
 
63
- const getTodos = (props) => {
64
-
65
- // サーバーからユーザのコンテンツを取得。
66
-
67
- return ContentService.getTodos();
68
-
69
- }
70
-
71
83
  export default connect(null, mapDispatchToProps)(TodoList);
72
84
 
73
85
  ```

1

タイプミスを修正

2020/11/15 11:05

投稿

jhon_connor
jhon_connor

スコア9

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  # 実現したいこと
8
8
 
9
- ユーザーがログインしたときに、サーバーからユーザーのTodoリストを取得して、Stateに反映したいのですが、やり方がわかりません。
9
+ ユーザーがログインしたときに、サーバーからユーザーのTodoリストを取得して、Stateに反映したいのですが、やり方がわかりません。
10
10
 
11
11
 
12
12