【发布时间】:2020-03-11 16:28:39
【问题描述】:
您好,我有一个下拉菜单,我希望一次只打开菜单上的一项,但我无法理解在打开状态为 true 时仅将一项设为 true 其他为 false 的逻辑我试图用我的 useState 和我的所有下拉菜单创建一个数组,但我无法想象一个解决方案:
代码
const [dropDownItems, setDropDownItem] = useState({
dropdown_home: false,
dropdown_about: false,
});
const updateDropDownItem = (dropDownItem, value) => {
let existingValues = JSON.parse(JSON.stringify(dropDownItems));
existingValues[dropDownItem] = value;
setDropDownItem(existingValues);
};
<NavLi
onClick={() => {
updateDropDownItem(
'dropdown_home',
!dropDownItems.dropdown_home,
);
}}
>
<Link to="/">One</Link>
{dropDownItems.dropdown_home ? (
<ul>
<li>
<a className="active" href="#Create Page">
Create Page
</a>
</li>
<li>
<a href="#Manage Pages">Manage Pages</a>
</li>
</ul>
) : null}
</NavLi>
<NavLi
onClick={() => {
updateDropDownItem(
'dropdown_about',
!dropDownItems.dropdown_about,
);
}}
>
<Link to="../about">Two</Link>
{dropDownItems.dropdown_about ? (
<ul>
<li>
<a className="active" href="#Create Page">
Create Page
</a>
</li>
<li>
<a href="#Manage Pages">Manage Pages</a>
</li>
</ul>
) : null}
</NavLi>
问题::
我无法想出一个解决方案,只留下一个项目为真,其他项目为假..
【问题讨论】:
-
@Yevgen Gorbunkov 我现在去看看谢谢
标签: javascript reactjs