【发布时间】:2017-10-07 23:35:14
【问题描述】:
我有一个 React 组件,我想在点击时切换一个 CSS 类。
所以我有这个:
export class myComponent extends React.Component {
constructor() {
super();
this.state = { clicked: false };
this.handleClick = this.handleClick.bind(this);
}
render() {
return (
<div>
<div onClick={this.clicked}><span ref="btn" className="glyphicon"> </span></div>
</div>
);
}
handleClick() {
this.refs.btn.classList.toggle('active');
}
componentDidMount() {
this.refs.btn.addEventListener('click', this.handleClick);
this.setState({
clicked: this.state.clicked = true,
});
}
componentWillUnmount() {
this.refs.btn.removeEventListener('click', this.handleClick);
this.setState({
clicked: this.state.clicked = false,
});
}
}
这个问题是 ESLint 一直告诉我“this.refs”被贬值了。
我该怎么做?如何修复它,使其不使用折旧代码?
【问题讨论】:
-
顺便说一句,在您的 setState 中,您可以在不使用 this 的情况下将它们分配为 true 或 false...我会使用 onClick={setButtonState} 然后在函数内部您可以简单地设置状态和随意切换。
标签: javascript reactjs