アクティブな要素が1つしかないリストを作成しようとしています。状態はちょうどそうであるように更新されますが、isActive関数は最初はアクティブになり、状態が変化するとアクティブになりません。動作しませんES6でhttps://codepen.io/anon/pen/mRWqQX関数の戻り値に応じてdomを更新する
マイコード:ここで
は、私がES5で何をしたいの実施例です。 isActive関数は状態の変化に対してトリガしません。 setState
functionを使用して反応に
import React from 'react'
class RadioButtons extends React.Component {
constructor() {
super();
this.isActive = this.isActive.bind(this);
this.state = {
selected: ""
}
}
isActive(value) {
if (this.state.selected === value)
return 'active';
else
return null;
}
makeActive(value) {
this.state = {
selected: value
}
}
render(){
return (
<div>
<div className={this.isActive("option1")} onClick={this.makeActive.bind(this, 'option1')} > option 1</div>
<div className={this.isActive("option2")} onClick={this.makeActive.bind(this, 'option2')} > option 2</div>
<div className={this.isActive("option3")} onClick={this.makeActive.bind(this, 'option3')} > option 3</div>
</div>
)
}
}
export default RadioButtons;
this.stateをthis.setStateに変更しても、ヘルプが表示されませんでした:/ divはまだdivに表示されません。 – Waltari
私のための作品https://codepen.io/anon/pen/qRrpZP?editors=1111 –
ありがとう、今は動作します。私はsetStateと中カッコの間に等号を残していました。エラーは出ませんが、どちらも動作しません。 – Waltari