有人可以帮我在点击事件中为列表项添加一个类吗?到目前为止,我通过访问refs
属性尝试了它:
<li className="existing-class" refs={ name } onClick={ this.sort.bind(this, name) }>Foo</li>
@action sort = (name) => {
this.refs.name.className="existing-class another-class"
}
然而,这不起作用..有人可以帮忙吗?
提前致谢!
答案 0 :(得分:1)
要修补现有解决方案,请尝试正确访问动态name
媒体资源:this.refs[name].className="some-class"
。
但是对于更多的React-y解决方案,您应该在li
的父组件中存储状态,以确定它是否已被点击,然后设置className
基于父母的州。
答案 1 :(得分:1)
是的,正确的方法是让元素的类由state
控制,而不是由click事件控制。
e.g。 <li className={'existing-class ' + this.state.clicked ? 'some-class' : ''}>Foo</li>
让onClick
函数执行setState({clicked: true})