質問編集履歴

3

messageBoxコンポーネントにclassNameを追加

2016/08/08 02:29

投稿

ricy
ricy

スコア48

test CHANGED
File without changes
test CHANGED
@@ -128,7 +128,11 @@
128
128
 
129
129
  return (
130
130
 
131
+ <div className="messageBox">
132
+
131
- <MessageList data={this.state.data} onScroll={this.onScroll} />
133
+ <MessageList data={this.state.data} />
134
+
135
+ </div>
132
136
 
133
137
  );
134
138
 

2

`のつけ忘れ修正

2016/08/08 02:28

投稿

ricy
ricy

スコア48

test CHANGED
File without changes
test CHANGED
@@ -17,6 +17,8 @@
17
17
  どのコンポーネントに処理を書けばよいでしょうか
18
18
 
19
19
 
20
+
21
+ ````
20
22
 
21
23
  <html>
22
24
 
@@ -149,3 +151,5 @@
149
151
  </body>
150
152
 
151
153
  </html>
154
+
155
+ ````

1

コードを追記

2016/08/08 01:52

投稿

ricy
ricy

スコア48

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
- 1,リスト操作する一番上位のコンポーネント
1
+ 1,リスト操作する一番上位のコンポーネント MessageBox
2
2
 
3
- 2.リスト全体のコンポーネント
3
+ 2.リスト全体のコンポーネント MessageList
4
4
 
5
- 3.リスト1行のコンポーネント
5
+ 3.リスト1行のコンポーネント Message
6
6
 
7
7
  3をループして描画
8
8
 
@@ -15,3 +15,137 @@
15
15
  特定の処理を実装したいのですが、
16
16
 
17
17
  どのコンポーネントに処理を書けばよいでしょうか
18
+
19
+
20
+
21
+ <html>
22
+
23
+ <head>
24
+
25
+ <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
26
+
27
+ <script src="https://fb.me/react-0.13.3.js"></script>
28
+
29
+ <script src="https://fb.me/JSXTransformer-0.13.3.js"></script>
30
+
31
+ </head>
32
+
33
+ <body>
34
+
35
+ <div id="content">
36
+
37
+ </div>
38
+
39
+ <script type="text/jsx">
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+ var Message = React.createClass({
48
+
49
+ render: function() {
50
+
51
+ return (
52
+
53
+ <li>
54
+
55
+ <div className="message">
56
+
57
+ <img src={this.props.data.message} alt=""></img>
58
+
59
+ </div>
60
+
61
+ </li>
62
+
63
+ );
64
+
65
+ }
66
+
67
+ });
68
+
69
+
70
+
71
+ var MessageList = React.createClass({
72
+
73
+ render: function() {
74
+
75
+ var resultNodes = this.props.data.map(function (row) {
76
+
77
+ return (
78
+
79
+ <Message data={row} />
80
+
81
+ );
82
+
83
+ });
84
+
85
+ return (
86
+
87
+ <ul>
88
+
89
+ {resultNodes}
90
+
91
+ </ul>
92
+
93
+ );
94
+
95
+ }
96
+
97
+ });
98
+
99
+
100
+
101
+ var MessageBox = React.createClass({
102
+
103
+ // 初期値を設定します
104
+
105
+
106
+
107
+ getInitialState: function() {
108
+
109
+ return {data: [], page: 1, apiUrl: 'http://api.com/get'};
110
+
111
+ },
112
+
113
+
114
+
115
+ componentDidMount: function() {
116
+
117
+ // ajaxでデータを取得
118
+
119
+ this.requestData();
120
+
121
+ },
122
+
123
+
124
+
125
+ render: function() {
126
+
127
+ return (
128
+
129
+ <MessageList data={this.state.data} onScroll={this.onScroll} />
130
+
131
+ );
132
+
133
+ }
134
+
135
+ });
136
+
137
+
138
+
139
+ React.render(
140
+
141
+ <MessageBox />,
142
+
143
+ document.getElementById('content')
144
+
145
+ );
146
+
147
+ </script>
148
+
149
+ </body>
150
+
151
+ </html>