質問編集履歴

2

文法の修正

2020/12/31 12:08

投稿

ryo-0213
ryo-0213

スコア2

test CHANGED
@@ -1 +1 @@
1
- jsonファイルのuserName表示させたい
1
+ useStateを使ってjsonファイルの中身出力したい
test CHANGED
File without changes

1

質問内容の変更

2020/12/31 12:08

投稿

ryo-0213
ryo-0213

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,36 +1,14 @@
1
- ### jsonファイルのuserName表示させたい
1
+ ### useStateを使ってjsonファイルの中身出力したい
2
2
 
3
3
 
4
4
 
5
+ ### 発生している問題
5
6
 
6
7
 
7
- ### 発生している問題・エラーメッセージ
8
8
 
9
- ```
9
+ userprofilesには入っているのですが、optionsが空になっています
10
10
 
11
- TypeError: Cannot read property 'toLowerCase' of null
11
+ ![イメージ説明](e958a65b0c360e17b13234a78cf1eb89.png)
12
-
13
- ```
14
-
15
- 原因だと思われるコード
16
-
17
- 色々と書き直しましたがうまく動きませんでした。
18
-
19
- ```
20
-
21
- setOptions(
22
-
23
- Object.keys(userprofiles).map(
24
-
25
- (key) => userprofiles[key]
26
-
27
- ) as UserProfile[]
28
-
29
- );
30
-
31
- ```
32
-
33
-
34
12
 
35
13
  ### 該当のソースコード
36
14
 
@@ -42,13 +20,15 @@
42
20
 
43
21
  userName: string;
44
22
 
23
+ }
24
+
45
25
 
46
26
 
47
27
  export default function Asynchronous() {
48
28
 
49
29
  const [options, setOptions] = useState<UserProfile[]>([]);
50
30
 
51
-
31
+
52
32
 
53
33
  useEffect(() => {
54
34
 
@@ -56,23 +36,13 @@
56
36
 
57
37
 
58
38
 
59
- if (!loading) {
60
-
61
- return undefined;
62
-
63
- }
64
-
65
-
66
-
67
39
  (async () => {
68
40
 
69
41
  const response = await fetch("http://localhost:8080/api/v1/userprofile");
70
42
 
71
- await sleep(1e3);
72
-
73
43
  const userprofiles = await response.json();
74
44
 
75
- // keys(o: object): string[];
45
+ console.log(userprofiles);
76
46
 
77
47
  if (active) {
78
48
 
@@ -80,9 +50,7 @@
80
50
 
81
51
  Object.keys(userprofiles).map(
82
52
 
83
- (key) => userprofiles[key]
53
+ (key) => userprofiles[key] ) as UserProfile[]
84
-
85
- ) as UserProfile[]
86
54
 
87
55
  );
88
56
 
@@ -90,75 +58,13 @@
90
58
 
91
59
  })();
92
60
 
93
- return () => {
94
-
95
- active = false;
96
-
97
- };
98
-
99
- }, [loading]);
100
61
 
101
62
 
102
-
103
- return (
104
-
105
- <Autocomplete
106
-
107
- id="demo"
108
-
109
- getOptionSelected={(option, value) => option.userName === value.userName}
110
-
111
- getOptionLabel={(option) => option.userName}
112
-
113
- options={options}
63
+ console.log(options);
114
-
115
- loading={loading}
116
-
117
- renderInput={(params) => (
118
-
119
- <TextField
120
-
121
- {...params}
122
-
123
- label="検索"
124
-
125
- variant="outlined"
126
-
127
- InputProps={{
128
-
129
- ...params.InputProps,
130
-
131
- endAdornment: (
132
-
133
- <React.Fragment>
134
-
135
- {loading ? (
136
-
137
- <CircularProgress color="inherit" size={20} />
138
-
139
- ) : null}
140
-
141
- {params.InputProps.endAdornment}
142
-
143
- </React.Fragment>
144
-
145
- ),
146
-
147
- }}
148
-
149
- />
150
-
151
- )}
152
-
153
- />
154
-
155
- );
156
-
157
- }
158
-
159
-
160
64
 
161
65
  ```
66
+
67
+ optionsで出力しようとしているのですがうまく行きません。
162
68
 
163
69
  ### 補足情報(FW/ツールのバージョンなど)
164
70