我有一个模态打开时,显示auth用户数据,目前,我只能在 Jmeter 板上打开模态,但我希望能够在我的应用程序中的任何地方呈现它。我如何做到这一点?
** Jmeter 盘**
const [visible, setVisible] = useState(false)
const trigerModal = ()=>(
<ModalCustom visible={visible} setVisible={setVisible}>
<form>
<>
<h3>Select an Account</h3>
<ul className="account">
{accounts && accounts.map((item, i) => (
<li key={item.id}>
<h3>{item.name}</h3>
<h3>{item.email}</h3>
<h3> {item.phone}</h3>
</li>
))}
</ul>
<br />
</>
</form>
</ModalCustom>
)
return(
<div>
{trigerModal()}
<button onClick={()=> setVisible(true)}>Open modal</button
</div>
)
字符串
个人资料
如何从该组件触发模态
3条答案
按热度按时间c6ubokkw1#
两个语句几乎可以回答所有react问题:
1.不改变状态(此处不适用)
1.提升状态(这是您问题的答案)。
创建一个context -将应用程序 Package 在其中,并使用任何组件
useContext
来打开一个包含任何组件的模态:字符串
将应用程序 Package 在
ModalProvider
组件中,以便上下文对所有组件都可用:型
SomeLink
,位于AdminDashboard
内部任何位置的组件都可以使用React.useContext
访问ModalProvider
中的状态型
mzsu5hc02#
如果你想从任何地方访问它,你需要使用全局状态(如Redux或Mobx)
如果你想从父组件控制它,你可以使用
useRef
ldxq2e6h3#
不是最“React”的解决方案,但我不喜欢解决所有的“React”,就像这里是我如何解决我的特定用例。
1.创建具有静态访问权限的类。
1.将modal放在DOM树的高/外部
1.在模态组件中设置必要的访问权限
HelperClass
字符串
样本模态分量
型
从任何地方拨打
型
现在请记住,这只适用于一个模态,但当然可以进一步调整以处理多个模态(例如:通过为函数添加dict等)