reactjs - 如何使用钩子显示和隐藏反应组件
问题描述
嗨!如果另一个组件可见,我如何显示一个组件,例如
if 组件 1:显示组件 2:隐藏组件 3:隐藏
if 组件 2:显示组件 3:隐藏组件 1:隐藏
(我有 10 个组件)
我正在使用反应钩子,谢谢
解决方案
您需要使用useEffect
钩子来跟踪要与另一个组件同步的组件的打开状态。
接下来的代码将在 Comp1 打开时触发 Comp2 组件的打开
function Comp1({open, showAnotherChild}) {
useEffect(() => {
if (open) {
showAnotherChild()
}
}, [open])
if (!open) {
return null
}
return // markup
}
function function Comp2({open}) {
if (!open) {
return null
}
return // markup
}
function Parent() {
const [comp1Open, setComp1Open] = useState(false)
const [comp2Open, setComp2Open] = useState(false)
return (
<>
<Comp1 open={comp1Open} showAnotherChild={setComp2Open} />
<Comp2 open={comp2Open} />
<button onClick={() => setComp1Open(true)}>Open Comp1</button>
</>
)
}
推荐阅读
- python - 查找电子邮件时,Python 中的正则表达式调用时间过长
- pyspark - PySpark - 从列表中获取字符串位置
- html - 使用 Bootstrap 时如何添加自定义 CSS 样式表
- r - 带有空表的闪亮 R renderDataTable
- python - 我在 Heroku Git 上托管了一个 discord.py 机器人,即使我在网站上打开了它,它也不会在 discord 服务器上上线
- sql - PostgreSQL查询说明
- node.js - How can I let my discord bot replies when I say Hi
- reactjs - 如何通过单击反应中的图像来查看模态??(instagram克隆编码)
- tinymce - pub/static 中缺少 Magento 2 tinymce
- flutter - ListTile 不会在每次添加时更新时间