【问题标题】:React tabs - tab select call tab of other pagesReact tabs - tab 选择其他页面的调用选项卡
【发布时间】:2020-05-22 12:08:40
【问题描述】:

我一直在我的反应应用程序的两个页面中使用反应选项卡,其中第二个页面在第一页中被调用。每当我选择第二页中的选项卡时,它都会显示第一页的选项卡面板。我们是否需要为此设置任何 id 或 onclick 事件。

在 Test.js 页面中,使用带有以下代码的选项卡

    <Tabs>
    <TabList>
           <Tab> Page 1 </Tab>
           <Tab> Page 2 </Tab> 
     </TabList>

     <TabPanel> <Page1 /></TabPanel>               
    <TabPanel> <Page2 /></TabPanel>               

     </Tabs>

在Page2.js中,使用“react-web-tabs”实现垂直标签,代码如下,

<Tabs defaultTab="vertical-tab-one" vertical className="vertical-tabs">
  <TabList>
    <Tab tabFor="vertical-tab-one">Tab 1</Tab>
    <Tab tabFor="vertical-tab-two">Tab 2</Tab>

  </TabList>

  <TabPanel tabId="vertical-tab-one">
    <p>Tab 1 content</p>
  </TabPanel>

  <TabPanel tabId="vertical-tab-two">
    <p>Tab  2 content</p>
  </TabPanel>

</Tabs>

当我点击 Tab2 时,它会显示标签 2 的内容,但是如果我点击 Tab1,它会显示页面 1(Test.js),而不是标签 1。

【问题讨论】:

标签: reactjs


【解决方案1】:

两个不同的库之间存在冲突。我只会选择其中之一。 (反应标签可以垂直)。以下是一些示例,展示了如何使用 react-tabs 进行垂直处理: (链接有两个例子,一个在下面,一个在旁边) https://codesandbox.io/s/dreamy-aryabhata-6gxc6?file=/src/index.js

import { Tab, Tabs, TabList, TabPanel } from "react-tabs";
import styled from "styled-components";
import React from "react";

    const StyledTab = styled.div`
      ul {
        display: flex;
        flex-direction: column;
        border: none;
      }
      .react-tabs__tab {
        border: none;
        :hover {
          background: blue;
        }
      }
    `;
    const Page2 = props => {
      return (
        <StyledTab>
          <Tabs>
            <TabList>
              <Tab>Title 1</Tab>
              <Tab>Title 2</Tab>
            </TabList>

            <TabPanel>
              <h2>Any content 1</h2>
            </TabPanel>
            <TabPanel>
              <h2>Any content 2</h2>
            </TabPanel>
          </Tabs>
        </StyledTab>
      );
    };
    export default Page2;

【讨论】:

  • 感谢您的回复。我选择了 react-web-tabs 来显示垂直标签,因为它不适用于 react-tabs。你能解释一下隐藏的道具吗?我没明白,它将如何解决这个问题。
  • 使用 react-tabs 并使其垂直的示例更新了答案。
  • 没问题,如果对你有用,请将其标记为答案。如果您需要任何帮助,请给我发消息,我可以帮助您。
猜你喜欢
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多