こんにちは
以下のようにすればよいかと思います。
jsx
1class YourClassName extends React.Component {
2 constructor() {
3 super();
4 this.state = {
5 selected: 0
6 };
7 }
8
9 onButtonClick(selected) {
10 this.setState({ selected });
11 }
12
13 render() {
14 return (
15 <section>
16 {[...Array(3)].map((_, i) => (
17 <YourDiv
18 key={i}
19 selected={this.state.selected == i+1}
20 classes={['Other', 'Classes', 'button']}
21 textContent={`ボタン${i+1}`}
22 onClick={() => { this.onButtonClick(i+1); }}
23 />
24 ))}
25 </section>);
26 }
27}
28
29class YourDiv extends React.Component {
30 render() {
31 const { classes, selected, onClick } = this.props;
32 classes.push(selected ? 'selected' : 'not-selected');
33 return (
34 <div className={classes.join(' ')} onClick={onClick}>
35 {this.props.textContent}
36 </div>
37 );
38 }
39}
40
41React.render(<YourClassName />, document.getElementById('app'));
ご質問に挙げられている CodePen をForkして上記のように修正したものが以下です。
以上、参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/10 06:00
2019/10/12 11:09 編集
2019/10/10 06:53 編集
2019/10/10 06:55
2019/10/10 06:56
2019/10/10 06:59
2019/10/10 12:21
2019/10/15 02:10
2019/10/15 08:44