teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

2018/03/16 04:12

投稿

MOTOMUR
MOTOMUR

スコア195

title CHANGED
@@ -1,1 +1,1 @@
1
- forEachでそれぞれ連想配列state内容を描画する方法
1
+ Object.keys(that).forEachの描画で起こった問題点
body CHANGED
@@ -4,8 +4,14 @@
4
4
  普段、配列をrender内で扱う時、```this.state.object.map(()=>{return()})```
5
5
  のように扱うのですが、連想配列がこれでは許されません。
6
6
 
7
+ ```
7
- ```Object.key(this.state.object).forEach((key)=>{return()})```
8
+ Object.key(this.state.object).forEach((key)=>{return()})
9
+ ```
10
+
11
+ として、return内で
12
+ ```
8
- として、return内で```this.state.object[key]```
13
+ this.state.object[key]
14
+ ```
9
15
  として描画可能ということを調べて記述しました。
10
16
 
11
17
  現在描画段階でつまずいており、function内でのconsole.log()で、forEachは成功していることが判明。
@@ -13,4 +19,24 @@
13
19
  renderの再描画の判定はこれだと間に合わないのでしょうか?
14
20
  (object.keyを挟まない時はうまく行くのでこのように考えました。)
15
21
 
16
- それとも別の要因でしょうか?
22
+ それとも別の要因でしょうか?
23
+
24
+
25
+ うまくいかないコードです。
26
+ ---
27
+ ```js
28
+
29
+ {
30
+ Object.keys(this.state.subjects).forEach(
31
+ key => {
32
+ return(
33
+ <ListItem>
34
+ <Text>a {this.state.subjects[key].subject}</Text>
35
+ </ListItem>
36
+ )
37
+ }
38
+ )
39
+ }
40
+ ```
41
+
42
+ key内のstateの表示はできていたのに、内部に作成できないのは何が原因でしょうか?