「アクティブ」クラス属性をクリックしたアイテムにのみ追加します。これまでのところ私はactiveItemと呼ばれる状態属性を持っている:Reactでクリックしたアイテムに「アクティブ」クラス属性を追加
constructor(props) {
super(props);
this.state = { clickedNotebookId: '', activeItem: false };
}
私はクリック機能内部の真の状態を変更します。
renderContent(event) {
this.setState({clickedNotebookId: this.props.id, activeItem: true}, function(){
//display content
});
}
私がフォローを行う私のrender()メソッドで:
<div className="list-group">
<a href="#" className={this.state.activeItem == true ? 'list-group-item active' : 'list-group-item'} onClick={this.renderContent}>{this.props.title}
<button className="pull-right btn btn-xs btn-danger" type="button" onClick={this.deleteNotebook}>
<strong>x</strong>
</button>
</a>
</div>
-
className={this.state.activeItem == true ? 'list-group-item active' : 'list-group-item'}
上記の条件は、クリックするとすべての項目が有効になるため、間違っていることがわかります。理想的にはクリックされたアイテムのみを強調表示する必要があります。
私はこれを理解するのに苦労しています。あなたはそれをやり直す反応の少ない方法を説明していただけますか? – ZeroDarkThirty