反应帮助选项卡之间切换

布伦特·安德森

我需要一些在标签之间切换的帮助。我附上一张图片,以帮助说明我的意思。我尝试了许多不同的方法来完成此操作,但是我遇到了麻烦。请允许我解释一下:

标签的图像

我创建了一个json文件,将这5个选项卡保存在对象数组中。每个人都有一个ID和一个名字。我通过在父组件(navbar组件)中通过此数组进行映射来动态创建每个选项卡组件。我这样做的原因是这样,以后我可以轻松地向我的.json文件中添加更多标签,并且它会自动添加更多标签组件,而无需对其进行编码。我想要一个动态的解决方案,而不是一个静态的解决方案一。

[
  {
    "id": 0,
    "name": "Home"
  },
  {
    "id": 1,
    "name": "About"
  },
  {
    "id": 2,
    "name": "Skills"
  },
  {
    "id": 3,
    "name": "Projects"
  },
  {
    "id": 4,
    "name": "Games"
  }
]
export default class Navigation extends React.Component {
  buildTabs = (tab) => {
    return(
      <Tab
        key={tab.id}
        id={tab.id}
        name={tab.name}
      />
    );
  }

  render() {
    return(
      <div style={style}>
        {TabJSON.map(this.buildTabs)}
      </div>
    );
  }
}

我试图在选项卡组件本身中设置一个选定状态,但是当我单击一个新选项卡时,上一个选项不会消失。它将只是单独打开它们,这不是我想要的。我希望他们切换选中状态,然后从其他状态中删除该状态,就像应该使用一个标签一样。

export default class Tab extends React.Component {
  state = {
    selected: this.props.id === 0 ? 'selected' : ''
  }

  tabClicked = (tab) => {
    this.setState({
      selected: 'selected'
    });
  }

  render() {
    return(
      <div
        id={this.props.id}
        className={`tab ${this.state.selected}`}
        onClick={this.tabClicked}
      >{this.props.name}
      </div>
    );
  }
}

我尝试从父组件(导航栏)管理此状态,以便可以在兄弟选项卡组件之间进行通信,但是遇到另一个问题。所有组件都一起选择打开或关闭,而不管我单击哪个组件都独立。

抱歉,很长的信息,希望有人能帮助我。

翁贝托

选择的状态必须在父组件内部。例如,您可以在Tab中添加onClick prop函数:

export default class Tab extends React.Component {

    render() {

      const { id, onClick, selectedTab } = this.props; 

      return (
          <div
              id= {id}
              className = {`tab ${id === selectedTab ? 'selected' : ''}`}
              onClick = {onClick}
            >
                { this.props.name }
            </div>
        );
    }
}

然后从父组件(导航)中控制“选定”选项卡,将当前选定的选项卡传递给每个组件,如下所示:

export default class Navigation extends React.Component {

  state = { 
     selectedTab: 0
  }

  onClickTab = id => () => {
     this.setState({ selectedTab: id });
  }

  buildTabs = (tab) => {
    return(
      <Tab
        key={tab.id}
        id={tab.id}
        name={tab.name}
        onClick={this.onClickTab(tab.id)}
        selectedTab={this.state.selectedTab}
      />
    );
  }

  render() {
    return(
      <div style={style}>
        {TabJSON.map(this.buildTabs)}
      </div>
    );
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何添加滑动以在选项卡之间切换

来自分类Dev

在片段TabHost中的选项卡之间切换

来自分类Dev

在模态角度选项卡之间切换

来自分类Dev

保留不同选项卡之间的切换

来自分类Dev

在选项卡中的选项卡之间切换

来自分类Dev

jQuery ui选项卡:在选项卡之间切换时的滑动效果

来自分类Dev

在选项卡中的选项卡之间切换

来自分类Dev

在TabBarView中的各个选项卡之间切换时跳过一个选项卡

来自分类Dev

在打开PuTTY选项卡的情况下在选项卡之间进行ConEmu切换

来自分类Dev

通过单击选项卡(不滑动)在“滑动”选项卡之间切换时,应用程序崩溃

来自分类Dev

在崇高的“ ctrl + tab”中的选项卡之间切换

来自分类Dev

打开并在选项卡之间切换时,如何更新FirefoxDriver(WebDriver)对象?

来自分类Dev

使用带有Java的Selenium WebDriver在浏览器选项卡之间切换

来自分类Dev

在Visual Studio中按文件类型排序选项卡窗口之间的快速切换

来自分类Dev

Visual Studio 2013选项卡之间的缓慢切换

来自分类Dev

在选项卡之间切换时,如何制作淡入淡出的动画?

来自分类Dev

在同一选项卡上的三个UIButton之间切换selectedState

来自分类Dev

在Swift中以编程方式在选项卡之间切换

来自分类Dev

Android在选项卡中的多个片段之间切换

来自分类Dev

在选项卡之间切换时避免在React中重新渲染

来自分类Dev

在React Native Navigation中的选项卡之间切换时如何保持堆叠的屏幕

来自分类Dev

在个人MSteams应用程序的选项卡之间手动切换

来自分类Dev

以编程方式在TabbedPage中的选项卡之间切换

来自分类Dev

在IntelliJ IDEA中的终端选项卡之间切换

来自分类Dev

Notepad ++是否支持使用数字在选项卡之间切换?

来自分类Dev

如何设置键盘快捷键在Excel选项卡之间切换?

来自分类Dev

更快的导航或在浏览器选项卡之间切换

来自分类Dev

使用键盘在gnome终端中的选项卡之间切换?

来自分类Dev

如何在不同选项卡下的导航控制器之间切换?

Related 相关文章

  1. 1

    如何添加滑动以在选项卡之间切换

  2. 2

    在片段TabHost中的选项卡之间切换

  3. 3

    在模态角度选项卡之间切换

  4. 4

    保留不同选项卡之间的切换

  5. 5

    在选项卡中的选项卡之间切换

  6. 6

    jQuery ui选项卡:在选项卡之间切换时的滑动效果

  7. 7

    在选项卡中的选项卡之间切换

  8. 8

    在TabBarView中的各个选项卡之间切换时跳过一个选项卡

  9. 9

    在打开PuTTY选项卡的情况下在选项卡之间进行ConEmu切换

  10. 10

    通过单击选项卡(不滑动)在“滑动”选项卡之间切换时,应用程序崩溃

  11. 11

    在崇高的“ ctrl + tab”中的选项卡之间切换

  12. 12

    打开并在选项卡之间切换时,如何更新FirefoxDriver(WebDriver)对象?

  13. 13

    使用带有Java的Selenium WebDriver在浏览器选项卡之间切换

  14. 14

    在Visual Studio中按文件类型排序选项卡窗口之间的快速切换

  15. 15

    Visual Studio 2013选项卡之间的缓慢切换

  16. 16

    在选项卡之间切换时,如何制作淡入淡出的动画?

  17. 17

    在同一选项卡上的三个UIButton之间切换selectedState

  18. 18

    在Swift中以编程方式在选项卡之间切换

  19. 19

    Android在选项卡中的多个片段之间切换

  20. 20

    在选项卡之间切换时避免在React中重新渲染

  21. 21

    在React Native Navigation中的选项卡之间切换时如何保持堆叠的屏幕

  22. 22

    在个人MSteams应用程序的选项卡之间手动切换

  23. 23

    以编程方式在TabbedPage中的选项卡之间切换

  24. 24

    在IntelliJ IDEA中的终端选项卡之间切换

  25. 25

    Notepad ++是否支持使用数字在选项卡之间切换?

  26. 26

    如何设置键盘快捷键在Excel选项卡之间切换?

  27. 27

    更快的导航或在浏览器选项卡之间切换

  28. 28

    使用键盘在gnome终端中的选项卡之间切换?

  29. 29

    如何在不同选项卡下的导航控制器之间切换?

热门标签

归档