gpt4 book ai didi

javascript - 我在菜单项上使用 react Hook 。我的第一次点击没有做任何事情,随后的点击按预期工作

转载 作者:行者123 更新时间:2023-11-30 19:42:05 25 4
gpt4 key购买 nike

import React, { useState } from 'react';
import './menu.css';

const menuItems = [ 'Home', 'Rooms', 'Photos', 'About' ];

const MenuItems = () => {
const [ toggle, setToggle ] = useState(false);
const [ classOn, setClassOn ] = useState('');
const [ hidden, setHidden ] = useState('hidden');

function toggleOnMenu(event) {
setToggle(!toggle);
if (toggle) {
setClassOn('on');
setHidden('');
} else {
setClassOn('');
setHidden('hidden');
}
event.preventDefault();
}
return (
// menu-section
<div onClick={(event) => toggleOnMenu(event)} className={classOn + ' menu-section'} style={{}}>
{/* menu-toggle */}
<div className={classOn + ' menu-toggle'} style={{}}>
{/* one */}
<div className="one" style={{}} />
{/* two */}
<div className="two" style={{}} />
{/* three */}
<div className="three" style={{}} />
</div>
<nav>
<ul
role="navigation"
className={hidden}
style={{
// display: 'none'
}}
>
{menuItems.map((menuItem) => {
return (
<li key={menuItem}>
<a href="/">{menuItem}</a>
</li>
);
})}
</ul>
</nav>
</div>
);
};

export default MenuItems;

我不知道这里有什么问题。当您第一次点击时,没有任何反应,但之后它就按预期工作了。一旦你刷新页面回到同样的问题。

所以我认为我在概念上有问题。我已经将代码重构为一个可行的替代方案,但如果有人知道原因,我将非常感谢帮助填补我的知识空白。

最佳答案

setToggle(!toggle); 在第一次触发时没有返回预期值,你必须等待更改,然后通过新的 toggle 决定你在做什么code>,但是 setToggle 不接受第二个参数/回调。要修复您有两种选择:

  • 使用useReducer()
  • 使用 useEffect() 更改它

关于javascript - 我在菜单项上使用 react Hook 。我的第一次点击没有做任何事情,随后的点击按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55291587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com