如何在单击第二个选项卡时更改选项卡索引

How to change tab index on clicking second tab

提问人:Naidu 提问时间:4/16/2023 最后编辑:James ZNaidu 更新时间:4/17/2023 访问量:70

问:

我的代码中有两个选项卡,单击第二个选项卡时,我需要显示一条消息,但我不知道如何知道何时选择了第二个选项卡。

问题是selectedIndex根本没有改变,我想显示的消息也没有出现。

const [selectedIndex, setSelectedIndex] = useState(0);

<Tabs selectedIndex={selectedIndex} onSelect={(index) => setSelectedIndex(index)} />

<TabList>
<Tab>One</Tab>
<Tab>Second</Tab>
</TabList>

<TabsPanel>content</TabsPanel>
<TabsPanel>content</TabsPanel>
</Tabs>

if (selectedIndex == 1) {

   //Show something

   //Need this msg outside the tabs

}

我已经尝试过这个,根据 react-tabs 文档,这应该有效,但实际上在我的情况下不起作用。请建议 onSelect 的任何替代方案,或者至少在第二个选项卡中展示如何更改 selectedIndex。

javascript 反应js 钩子 反应 标签

评论


答:

0赞 netlorecomment 4/16/2023 #1

在文档中提到的这个方法(onSelect)有三个参数,第一个参数是当前标签索引,你必须收到第二个参数(最后一个索引)来解决这个问题。


[已编辑] 请试试这个代码:

    const App = () => {
  const [tabIndex, setTabIndex] = useState(0);

  return (
    <Tabs selectedIndex={tabIndex} onSelect={(index) => setTabIndex(index)}>
      <TabList>
        <Tab>Title 1</Tab>
        <Tab>Title 2</Tab>
      </TabList>
      <TabPanel>1</TabPanel>
      <TabPanel>2</TabPanel>
    </Tabs>
  );
};

<h1>{tabIndex}<h1>

if (tabIndex === 1) {

   //Show something

   //Need this msg outside the tabs

}

评论

0赞 Naidu 4/17/2023
但是我们将从哪里传递最后一个索引。在选项卡上,我实际上无法传递它
0赞 Naidu 4/17/2023
索引仅显示为 0。它没有被改变,味球也没有被显示,因为索引没有被改变
0赞 netlorecomment 4/17/2023
您可以添加一个按钮并更改手动选择的 Index 进行测试吗?