【发布时间】:2019-04-03 06:28:49
【问题描述】:
我正在尝试创建一个具有可折叠选项的侧边菜单。
下面是我的代码:
export default class CRSideMenu extends React.Component {
constructor(props) {
super(props);
this.state = {
fprActive: true
};
autoBind(this);
}
toggleFPR() {
console.log('Setting fprActive from ', this.state.fprActive, ' to ', !this.state.fprActive);
this.setState({
fprActive: !this.state.fprActive
});
}
render() {
console.log('render', this.state.fprActive);
return (
<ul className='list-group list-group-nav'>
<li>
<a
href='#'
className={classnames('list-group-item', this.state.fprActive && 'active', 'has-subnav')}
onClick={this.toggleFPR} >
FPR
</a>
<ul className='list-group list-group-nav'>
<li>
<a href='' className='list-group-item'>FR</a>
</li>
</ul>
</li>
</ul>
);
}
}
当我在 render() 方法中打印出 this.state.fprActive 时,我看到以下内容:
- 将 fprActive 从 true 设置为 false
- 渲染错误
- 真实呈现
当我只点击一次时,为什么我的 fprActive 会自动设置为“true”?
【问题讨论】:
-
我假设
autoBind使toggleFDR绑定到this?
标签: javascript reactjs render setstate