reactjs - React Tabs onClick 获取所选选项卡的索引

标签 reactjs indexing tabs redux

我是 React 新手,我正在尝试从 onClick 事件中获取选定的选项卡。

下面是我的代码以及输出。

如何实现handleSelect函数?

这是我当前的代码:

class Header extends React.Component {
  constructor(props) {
    super(props);
    this.state = {value : 0};
  }

  getState(){
    return this.state.value;
  }

  setState(state){
    this.state = state;
  }

  handleSelect(index){
    console.log('Selected tab: ' + index);
  }

  render() {
    let selectedIndex = this.getState();

    return (
      <header className="header">
        <AppBar title="App Bar" />

        <Tabs>
          <Tab label="Core Courses" onClick={this.handleSelect(0)} />
          <Tab label="Capstone Requirement" onClick={this.handleSelect(1)}/>
          <Tab label="Computer Science Electives" onClick={this.handleSelect(2)}/>
          <Tab label="Support Courses" onClick={this.handleSelect(3)} />
        </Tabs>

      </header>
    );
  }
}

这是当前渲染时的控制台日志:

Selected tab: 0
Selected tab: 1
Selected tab: 2
Selected tab: 3

最佳答案

以下代码将向所选选项卡添加“事件”类。如果所选选项卡中有一个“事件”类,希望您可以使用 css 对其进行管理。

class Header extends React.Component {
  constructor(props) {
  super(props);
  this.state = {
    activeTab : 0
  };
  this.handleSelect = this.handleSelect.bind(this);
}

handleSelect(index){
  this.setState({
    activeTab: index
  });
}

render() {
  let selectedIndex = this.getState();

  return (
    <header className="header">
      <AppBar title="App Bar" />
      <Tabs>
        <Tab classsName={this.state.activeTab == 0 ? 'active' : ''} label="Core Courses" onClick={this.handleSelect(0)} />
        <Tab classsName={this.state.activeTab == 1 ? 'active' : ''} label="Capstone Requirement" onClick={this.handleSelect(1)}/>
        <Tab classsName={this.state.activeTab == 2 ? 'active' : ''} label="Computer Science Electives" onClick={this.handleSelect(2)}/>
        <Tab classsName={this.state.activeTab == 3 ? 'active' : ''} label="Support Courses" onClick={this.handleSelect(3)} />
    </Tabs>
  </header>
);

} }

关于reactjs - React Tabs onClick 获取所选选项卡的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40699913/

相关文章:

javafx - 如何在TabPane中隐藏TabBar?

sql-server - 如何避免由于非聚集非唯一索引导致的 Insert/Delete 语句之间的死锁!

java - 如何禁用此特定 View 页面中的滑动功能?

swift - 如何使用 swift 在 UITabBarController 中以编程方式添加选项卡?

reactjs - React Native StackNavigator 初始路由名称

elasticsearch - 无法设置index.mapping.single_type:对索引为true

php - 在列的下拉菜单上显示选项 - PHP MYSQL

javascript - 在 React 中按下键 (Ctrl + Enter) 调用函数

reactjs - 处理获取的数据 - RTK Query/Redux 工具包/React

javascript - 我可以在渲染之前对 JSX 中的元素进行计数吗?