【发布时间】:2021-06-06 12:34:48
【问题描述】:
我对 Typescript 还是很陌生,而且很遗憾,我不明白我做错了什么。 我有一个带有 NavDropdown 的标签样式导航。 Unfortunately the dropdown is the only tab that does not get the active class when one of the dropdown items is selected. 我已经看到有些人遇到了这个问题并且可以以某种方式解决它,但在我的情况下我找不到解决方法。 谁能帮帮我?
目前我的导航是这样的:
<Nav variant="tabs">
<Nav.Item>
<Nav.Link
onClick={(e: React.MouseEvent<Element, MouseEvent>) => setTab(e, "today")}
href="#today"
>
today
</Nav.Link>
</Nav.Item>
<NavDropdown
title={activeTab === "month" ? dateFormat(dateStart!, "MMMM yyyy") : "month"}
id="month"
>
{months.map((m) => (
<NavDropdown.Item onClick={() => setMonth(m)} key={dateFormat(m, "MMMM yyyy")}>
{dateFormat(m, "MMMM yyyy")}
</NavDropdown.Item>
))}
</NavDropdown>
【问题讨论】:
-
要在点击时选择添加
eventKey到NavDropdown.Item。但是为了使其可以通过状态更改进行选择,它还需要active属性(例如,更改为当前月份)。请看下面Codesandbox。 -
@ yolf感谢代码箱的很多,它帮助了我已经有点:-)问题是,即使在你的例子中也没有在选择一个月时显示该月的选项卡。 .. :( 这就是我想要做的,或者它应该看起来如何:prnt.sc/14dlm4n 不幸的是我无法让它在 react-bootstrap 中工作......你能帮我解决这个问题吗?跨度>
-
您可以在
NavDropDown上添加title。我已经在 Codesandbox 中更改了它。如果不需要其他格式,也可以直接使用{month}作为标题。 -
对不起,我认为我不擅长准确描述我的问题。我能够将标题设置为当前月份。 My problem is that the tab with the current month is not displayed as an active tab when a month is selected.所以这就是当前选择一个月时的样子:prnt.sc/14dq5ce 但这是选择一个月后的样子:prnt.sc/14dlm4n 或者您是否已经知道我的意思,我只是不明白您的意思回答? ://
-
好的,没问题。现在,我遇到了问题。使用
activeTab状态变量在NavDropdown上设置active属性。我已经更新了沙箱中的代码。所以month的选项卡每个月被激活一次。
标签: reactjs react-bootstrap react-bootstrap-nav