如何将类添加到单击的列表项

时间:2016-12-14 19:29:26

标签: reactjs

有人可以帮我在点击事件中为列表项添加一个类吗?到目前为止,我通过访问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"
}

然而,这不起作用..有人可以帮忙吗?

提前致谢!

2 个答案:

答案 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})