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

回答編集履歴

5

テキスト追加

2018/07/26 06:06

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  こんにちは。
2
2
 
3
3
  いろいろなやり方があると思いますので、あくまで一例として、以下のような感じでいかがでしょうか?
4
- (※矢印に[Font Awesome](https://fontawesome.com/) を使用しています。)
4
+ (※矢印に[Font Awesome](https://fontawesome.com/) を、ダミーの画像に [dummyimage](https://dummyimage.com/) を使用しています。)
5
5
 
6
6
  ```javascript
7
7
 

4

テキスト修正

2018/07/26 06:06

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  ```javascript
7
7
 
8
8
  const Thumbnails = ({mainImageIndex, imageUrls}) => {
9
- const thumbs = [...Array(3)].map((_, i) =>
9
+ const thumbs = [...Array(imageUrls.length-1)].map((_, i) =>
10
10
  <div key={i}>
11
11
  <img src={imageUrls[(mainImageIndex + i + 1) % imageUrls.length]} />
12
12
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
  以下は、上記のコードのデモです。
71
71
 
72
- [https://jsfiddle.net/jun68ykt/3kt29qzc/7/](https://jsfiddle.net/jun68ykt/3kt29qzc/7/)
72
+ [https://jsfiddle.net/jun68ykt/3kt29qzc/8/](https://jsfiddle.net/jun68ykt/3kt29qzc/8/)
73
73
 
74
74
 
75
75
  参考になれば幸いです。

3

テキスト追加

2018/07/26 06:04

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  こんにちは。
2
2
 
3
3
  いろいろなやり方があると思いますので、あくまで一例として、以下のような感じでいかがでしょうか?
4
+ (※矢印に、[Font Awesome](https://fontawesome.com/) を使用しています。)
4
5
 
5
6
  ```javascript
6
7
 

2

テキスト修正

2018/07/26 05:59

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  const Thumbnails = ({mainImageIndex, imageUrls}) => {
8
8
  const thumbs = [...Array(3)].map((_, i) =>
9
- <div key={i}>
9
+ <div key={i}>
10
10
  <img src={imageUrls[(mainImageIndex + i + 1) % imageUrls.length]} />
11
11
  </div>
12
12
  );

1

テキスト修正

2018/07/26 05:56

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -3,6 +3,17 @@
3
3
  いろいろなやり方があると思いますので、あくまで一例として、以下のような感じでいかがでしょうか?
4
4
 
5
5
  ```javascript
6
+
7
+ const Thumbnails = ({mainImageIndex, imageUrls}) => {
8
+ const thumbs = [...Array(3)].map((_, i) =>
9
+ <div key={i}>
10
+ <img src={imageUrls[(mainImageIndex + i + 1) % imageUrls.length]} />
11
+ </div>
12
+ );
13
+
14
+ return <div className="thumbs">{thumbs}</div>;
15
+ };
16
+
6
17
  class App extends React.Component {
7
18
  constructor(props) {
8
19
  super(props);
@@ -15,7 +26,6 @@
15
26
  ];
16
27
 
17
28
  this.onArrowClicked = this.onArrowClicked.bind(this);
18
- this.thumbnails = this.thumbnails.bind(this);
19
29
 
20
30
  this.state = {
21
31
  mainImageIndex: 0
@@ -37,17 +47,6 @@
37
47
  };
38
48
  }
39
49
 
40
- thumbnails() {
41
- return [...Array(3)].map((_, i) => {
42
- const imageIndex = (this.state.mainImageIndex + i + 1) % this.imageUrls.length;
43
- return (
44
- <div key={i}>
45
- <img src={this.imageUrls[imageIndex]} />
46
- </div>
47
- );
48
- });
49
- }
50
-
51
50
  render() {
52
51
  return (
53
52
  <div className="app">
@@ -56,9 +55,7 @@
56
55
  <div><img src={this.imageUrls[this.state.mainImageIndex]}/></div>
57
56
  <div onClick={this.onArrowClicked('next')}><i className="fas fa-arrow-right fa-4x"></i></div>
58
57
  </div>
59
- <div className="thumbs">
58
+ <Thumbnails mainImageIndex={this.state.mainImageIndex} imageUrls={this.imageUrls} />
60
- {this.thumbnails()}
61
- </div>
62
59
  </div>
63
60
  );
64
61
  }
@@ -66,11 +63,12 @@
66
63
 
67
64
  ReactDOM.render(<App />, document.querySelector("#app"))
68
65
 
66
+
69
67
  ```
70
68
 
71
69
  以下は、上記のコードのデモです。
72
70
 
73
- [https://jsfiddle.net/jun68ykt/tu8xdof7/63/](https://jsfiddle.net/jun68ykt/tu8xdof7/63/)
71
+ [https://jsfiddle.net/jun68ykt/3kt29qzc/7/](https://jsfiddle.net/jun68ykt/3kt29qzc/7/)
74
72
 
75
73
 
76
74
  参考になれば幸いです。