回答編集履歴

1

テキスト追加

2020/06/03 11:48

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -31,3 +31,89 @@
31
31
  .then(json => json);
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ ### 追記
38
+
39
+
40
+
41
+ 以下のように修正してみると、いかがでしょうか?
42
+
43
+
44
+
45
+ #### 修正前
46
+
47
+ ```javascript
48
+
49
+ const getTasksApi = () => {
50
+
51
+ //APIを読み込む処理
52
+
53
+ //何種類か試しました。試したものは下に書いてあります。
54
+
55
+ }
56
+
57
+
58
+
59
+ class App extends React.component {
60
+
61
+ constructor() {
62
+
63
+   this.state = {
64
+
65
+ tasks: getTaskApi();
66
+
67
+ }
68
+
69
+ }
70
+
71
+ ```
72
+
73
+
74
+
75
+
76
+
77
+ `App` の `constructor()` では、 `this.state.tasks` を空の配列で初期化しておいて、`componentDidMount()` でAPIを呼び、その結果で `this.setState` で `tasks` を更新します。このとき、レスポンスが返ってくるために待つために、 async と await を使います。
78
+
79
+
80
+
81
+ #### 修正後
82
+
83
+ ```javascript
84
+
85
+ const getTasksApi = async () =>
86
+
87
+ fetch('https://script.google.com/macros/s/*********/exec')
88
+
89
+ .then(tasks => tasks.json());
90
+
91
+
92
+
93
+ class App extends React.component {
94
+
95
+ constructor() {
96
+
97
+   this.state = {
98
+
99
+ tasks: []
100
+
101
+ }
102
+
103
+ }
104
+
105
+
106
+
107
+ componentDidMount() {
108
+
109
+ const tasks = await getTasksApi();
110
+
111
+ this.setState({ tasks });
112
+
113
+ }
114
+
115
+
116
+
117
+ ・・・
118
+
119
+ ```