从“react”导入 React, { useState, useRef, useEffect }; 从“react-dom”导入ReactDOM; const PortalWrapper = React.forwardRef(({ 孩子 }, ref) => { const [openDropdownMenu, setOpenDropdownMenu] = useState(false); const [位置,setPosition] = useState({ 左:0, 顶部:0, 宽度:“100%”, }); const dropdownRef = useRef(null); const handleDropdDownClick = () => { setOpenDropdownMenu(!openDropdownMenu); if (ref && ref && ref.current 中的“当前”) { const { 顶部、左侧、高度 } = ref.current.getBoundingClientRect(); 设置位置({ 顶部:顶部+高度, 左边, 宽度:`${ref.current.clientWidth}px`, }); } }; 使用效果(()=> { if (openDropdownMenu && dropdownRef.current) { dropdownRef.current.style.top = `${position.top}px`; dropdownRef.current.style.left = `${position.left}px`; dropdownRef.current.style.display = "无"; } }, [打开下拉菜单,位置]); 返回 ( <div ref="{ref}" classname="w-full" onclick="{handleDropdDownClick}"> {孩子(位置)} {打开下拉菜单&& ReactDOM.createPortal( <div ref="{dropdownRef}" style="{{"> {孩子(位置)} </div>, 文档正文 )} </div> ); }); 导出默认的PortalWrapper;
<portalwrapper ref="{dropdownRef}"> {()=> (itIsOwner(用户?.agent_role) || 用户?.platform_owner) && ( 处理操作更改( 选定的选项, 联系方式, 指数 ) } 选项={agentData?.map((选项)=>({ 值:选项, 标签:`${option.first_name}`, }))} 占位符=“埃丝特·霍华德” 类名={clsx( “dropdown_list !w-40 光标指针 userFilter mt-[0.4375rem]” )} classNamePrefix =“dropdown_list-联系人” 菜单位置=“固定” 菜单放置=“自动” menuShouldScrollIntoView={false} menuPortalTarget={document.body} /> ) } 门户包装> </portalwrapper>
以上就是在门户中打开下拉列表,以便在反应中使用表的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com