如何在reactjs中为列表添加和删除添加类?

Fer*_*uza 5 list reactjs

在此处输入图片说明

例如,只需将活动类 btw 切换到 li。但不是路由器。我有这样的列表,它不是带有 map() 方法的 cicle。它是静态列表。

 constructor(props) {
        super(props);
        const parsedUrlQuery = window.location.pathname;
        this.state = {
            isActive: true
        }
    }

  <ul className='bread list-inline'>
       <li className={this.state.isActive ? 'navigation--active' : ''}>All projects</li>
       <li> My projects</li>
  </ul>
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何为静态列表删除和添加类。你能帮我解决这个问题吗?

mer*_*lin 6

你必须以state某种方式改变。按钮单击、输入更改甚至来自某种子组件处理程序。

在此示例中,我onClickli触发此类状态更改的每个元素中使用:

class App extends React.Component {
  constructor() {
    super()

    this.state = {
      activeItem: -1,
      items: ['All Projects', 'My Projects'],
    }
  }

  handleItemClick(index) {
    this.setState({
      activeItem: index,
    })
  }

  render() {
    return (
      <div>
        <ul className='bread list-inline'>
          {this.state.items.map((item, index) =>
            <li
              key={index}
              className={this.state.activeItem === index ? 'navigation--active' : ''}
              onClick={this.handleItemClick.bind(this, index)}
            >
              {item}
            </li>
          )}
        </ul>
      </div>
    )
  }
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
)
Run Code Online (Sandbox Code Playgroud)
ul > li {
  cursor: pointer;
}

li.navigation--active {
  text-decoration: underline;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
Run Code Online (Sandbox Code Playgroud)