javascript - 如何使用 React onClick 在 body 上切换一个类
问题描述
我有一个按钮,可以打开一个看起来像模态的 div。
单击此按钮时,我想在正文上添加一个类,然后单击关闭按钮,我想删除该类。
你将如何在带有useEffect
/的 React 功能组件中做到这一点useState
?
解决方案
你可以this.setState
在组件中这样使用
....
handleClick = () => {
this.setState((state) => {
addClass: !state.addClass
})
}
render () {
const { addClass } = this.state
return (
<>
<button onClick={this.handleClick}>Button</button>
<div className={!!addClass && 'yourClassName'}>hello</div>
<>
)
}
在这样的功能中
function Example() {
const [addClassValue, addClass] = useState(0);
return (
<div>
<button onClick={() => addClass(!addClassValue)}>
Click me
</button>
<div className={addClass ? 'yourClassName'}>hello</div>
</div>
)
}
但是你不需要类,因为 React 与组件一起工作,你可以显示你的模态
function Example() {
const [addClassValue, addClass] = useState(false);
return (
<div>
<button onClick={() => addClass(!addClassValue)}>
Click me
</button>
// this Component will be only rendered if addClassValue is true
{addClassValue && <ModalComponent />}
</div>
)
}
推荐阅读
- powerbi - Power BI 在 URL 中增加页码
- css - Css selectors - a:visited childs
- javascript - 如何运行不同包的 npm 命令
- android - 编辑文本的有限 WRAP_CONTENT
- bash - 使用脚本的输出完成 Bash
- javascript - 处理提交数据未显示来自子表单组件的数据
- javascript - 在这个例子中,如何使用 vue.js 在 for 循环中设置标题?
- python - 如何读取存储在文本文件中的数字,然后将它们作为整数存储在列表或数组中
- python - 我得到 SyntaxError: invalid syntax while using %precision 2
- android - 从 RecyclerView 中删除一行