javascript - 在 React 中从它们内部的按钮切换两个组件的可见性
问题描述
我有这个结构
组件 1
import React, { useState } from 'react'
export default function Component1() {
return (
<div>
<button onClick={handleChange}></button>
</div>
)
}
组件 2
import React, { useState } from 'react'
export default function Component2() {
return (
<div>
<button onClick={handleChange}></button>
</div>
)
}
和父母
import React from 'react'
export default function Parent() {
return (
<div>
<Component1 />
<Component2 />
</div>
)
}
问题是,如何在没有父级按钮的情况下切换两者之间的可见性。只是每个组件内的按钮。 - 默认情况下,Component1 应该是可见的,当您按下 Component1 中的按钮时,它将隐藏它并显示 Component2,反之亦然。
我尝试在 Component1 按钮上使用 useState 挂钩,但我不确定如何导出状态并将其添加到父组件。
const [showMini, setShowMini] = useState(false);
const handleChange = () => {
setShowMini(true);
}
这可能吗?还是可以只在父级中使用一个按钮来控制两者?谢谢
解决方案
试试这个:
import React from 'react'
export default function Parent() {
const[show,setShow]=useState(false);
const handleChange=()=>{
setShow(!show);
}
return (
<div>
{show ? <Component2 handleChange={handleChange}/> : <Component1 handleChange={handleChange}/>}
</div>
)
}
在 Component1 里面有这个:
import React, { useState } from 'react'
export default function Component1({handleChange}) {
return (
<div>
<button onClick={handleChange}></button>
</div>
)
}
同样对 Component2 执行此操作
推荐阅读
- c# - 如何从 DockPanel 获取高度和宽度?
- ios - Xamarin:NSMutableUrlRequest 和 NSUrlRequest 与 POST 方法和标头和数据?
- python-3.x - 为重复值创建新数据框
- apache-spark - Spark 结构化流:queryName() 设置的可能用途是什么?
- angular - Angular 7 从 API 获取数据
- mikrotik - 将源 IP 更改为目标网络 MikroTiK
- angular - 从 Dataframes 到 Firestore 的数据结构
- javascript - ECMA-2015 语法中的 CoverInitializedName[yield] 是什么
- python - 根据长度列表从 numpy 数组中选择元素
- php - 如何修复“无法解析类“RelacionesBundle\Entity\Pregunta”的列“id”的类型?