javascript - 在状态值之间切换 - 切换功能
问题描述
在我的 React 应用程序中,我有一个功能组件并且想要在状态值之间切换。我的toggleNav
功能似乎不起作用。isMenuOpen
我正在尝试设置isMenuOpen
不是,但我的语法似乎不正确。
我有以下代码:
const navBar = () => {
//set initial state
const [isMenuOpen] = useState(false);
// toggle variable
let toggleNav = () => {
isMenuOpen = !isMenuOpen;
}
return (
<button onClick={toggleNav}>Toggle</button>
)
}
解决方案
返回的第二个元素useState
是 a setter
。你不能只是改变状态。尝试这个:
const navBar = () => {
//set initial state
const [isMenuOpen, setMenuOpen] = useState(false);
// toggle variable
let toggleNav = () => {
setMenuOpen(!isMenuOpen)
}
return (
<button onClick={toggleNav}>Toggle</button>
)
}
正如评论中指出的,toggleNav
是不必要的:
const navBar = () => {
//set initial state
const [isMenuOpen, setMenuOpen] = useState(false);
return (
<button onClick={() => setMenuOpen(!isMenuOpen)}>Toggle</button>
)
}
推荐阅读
- ios - 防止 UICollectionView 在 contentOffset 之外滚动
- typescript - 如何修复 TypeScript 在 localstorage.get 上抛出错误
- extjs - ExtJS 7 Force Froala 编辑器以适应父组件大小
- ios - 我们可以指示 PAServer 执行自定义命令吗?
- spark-submit - 最近有人运行 spark-submit 吗?
- c - 如何获得数组大小均为 10 的 txt 文件和二进制文件的总和?
- amazon-web-services - AWS CloudFormation 模板生成问题
- c# - 使用 NCrontab 进行每日运行的 Cron 表达式,从任何给定时间开始,间隔 50 分钟
- reactjs - ReactJS中useEffect Hook中增加索引计数器的问题
- android - 由于上下文问题,隐式意图不起作用