我已经使用React-Bootstrap在我的React应用程序中实现了导航选项卡。
就像这样:
<Tabs defaultActiveKey={1}>
<Tab eventKey={1} title="Log in">
{/* Irrelevant code */}
</Tab>
<Tab eventKey={2} title="Sign up">
{/* Irrelevant code */}
</Tab>
</Tabs>
现在,在更改选项卡时,我想调用以下函数:
changeTab(login) {
if (login)
this.setState({ heading: "Log in" })
else
this.setState({ heading: "Sign up" })
}
其中login
是布尔值,当选择Log in
选项卡时为true
,当选择Sign up
选项卡时为false
。
我该怎么做呢?
- 编辑:**
我发现当你点击标签的时候你可以调用一个函数,如下所示:
<Tabs defaultActiveKey={1} onClick={()=>this.changeTab()}>
<Tab eventKey={1} title="Log in">
{/* Irrelevant code */}
</Tab>
<Tab eventKey={1} title="Sign up">
{/* Irrelevant code */}
</Tab>
</Tabs>
但是我怎么知道哪个标签被点击了呢?我需要它来根据哪个标签被点击来改变状态。
3条答案
按热度按时间zbq4xfa01#
您需要在
Tabs
组件中使用onSelect
。就像这样:
然后将其作为
handleSelect
函数:sulc1iza2#
现在在您的状态中添加初始值为“1”的“key”字段
然后写一个函数
最初当页面加载时,不调用该函数,因此您可以在componentDidMount或任何其他函数中进行API调用或任何您想在第1个选项卡中进行的操作,并将其放置在第1个选项卡中,即我写的1111,之后当您单击另一个选项卡时,将调用handleSelect函数,并基于键值使用if..else语句为特定选项卡执行特定任务。
希望这能有所帮助。如果有任何问题,请让我们知道在评论部分。
xsuvu9jc3#
在这里,你可以像
Barry Michael Doyle
说的那样使用onSelect。让我给你贴一个示例代码,让你更清楚它。