UNPKG

@alifd/overlay

Version:
73 lines (63 loc) 1.66 kB
--- title: 弹层嵌套 order: 5 --- 有弹层嵌套需求时,请使用 container 属性将第二个弹层渲染到第一个弹层内部, 这样不会因为点击第二个弹窗导致第一个弹窗消失。 ```jsx import { useState } from 'react'; import Overlay from '@alifd/overlay'; const { Popup } = Overlay; const style = { width: 400, height: 100, padding: 10, background: '#fff', borderRadius: 2, boxShadow: '2px 2px 20px rgba(0, 0, 0, 0.15)', }; const Demo = () => { const [followTrigger, setFollowTrigger] = useState(false); const overlay2 = ( <div style={{ ...style }}> <Popup overlay={ <div style={style}> <p> 挂载容器没有overflow:hidden, 依然超出容器展示,不会因为挂载容器小自动订正位置,viewport 任然为 body </p> </div> } followTrigger={followTrigger} > <button>Open third overlay</button> </Popup> <p>Hello World From First Overlay!</p> </div> ); const overlay = ( <div style={{ ...style }}> <Popup overlay={overlay2} followTrigger={followTrigger}> <button>Open second overlay</button> </Popup> <p>Hello World From First Overlay!</p> </div> ); return ( <div> followTrigger:{' '} <input type="checkbox" checked={followTrigger} onChange={(e) => setFollowTrigger(e.target.checked)} /> <br /> <br /> <Popup overlay={overlay}> <button>Open first overlay</button> </Popup> </div> ); }; ReactDOM.render(<Demo />, mountNode); ```