我正在使用资料UI,并第一次作出反应,做一个练习,我不能启用一个按钮,一旦点击后,第二次被禁用。
以下是代码:
const [hello, setHello] = useState(true)
<Button variant='contained' color='primary' disabled={hello ? false : true} onClick={() => setHello(!hello)}>
Click Me
</Button>当页面启动时,按钮将被启用。

当我第一次点击它时,它就被禁用了。

问题是,当再次单击时,它将保持禁用状态。setHello(! hello )不应该将hello转换为与其相反的布尔值吗?
发布于 2021-06-01 07:10:22
在React状态更新中切换布尔值的正确方法是使用功能状态更新。
onClick={() => setHello(hello => !hello)}该按钮的禁用属性还可以使用少量应用的布尔Zen,因为hello状态已经是一个布尔值,因此不需要使用三元操作符仅来分配布尔值。
disabled={!hello}但是,更大的问题是在禁用按钮之后,它现在不再可点击了,所以您需要一些其他方法来切换hello状态,以便重新启用按钮。
发布于 2021-06-01 07:11:03
尝尝这个。
const [hello, setHello] = useState(true)
<Button variant='contained' color='primary' disabled={!hello} onClick={() => setHello(hello => !hello)}>
Click Me
</Button>https://stackoverflow.com/questions/67784190
复制相似问题