react的彈出層不同於以往的dom程式設計,我們知道,在dom中,彈出層事件繫結在對應的節點上即可,但是在react中,往往只能實現父子之間的傳遞控制,顯然,彈出層的層級不符合此關係。
在這裡我們需要使用react官方的portals
portals可以幫助我們將子節點插入到父節點層級之外的地方
注:官方文件使用的是class,我在這裡使用的是react hook
在react
react hook
useeffect
是了react生命週期中的componentdidmount
、componentdidupdate
以及componentwillunmount
三個鉤子函式的組合。
return(
)}2.實現彈出層
我們按照官方文件,先生成乙個節點el作為存放我們子節點的容器,並執行reactdom.createportal
reactdom.createportal(child, container)
我們需要先將我們的el節點插入選定的dom節點,然後再將portal元素插入dom樹中,故我們先用hook在componentdidmount
階段將el插入dom
(1)首先獲取我們要插入的dom節點id=model-root
const modelroot = document.getelementbyid('model-root');
(2)建立乙個存放子節點的元素el
const [el,changel] = usestate(document.createelement('div'));
(3)在componentdidmount
階段將el節點插入model-root
//初始化工作
useeffect(()=>,)
(4)渲染元件,執行createportal方法
return reactdom.createportal((
), el);
(5)在componentwillunmount
階段移除我們的el節點
//清理工作
useeffect(()=>
})
完整**如下:
import react, from 'react';
import './model.css';
import reactdom from "react-dom";
import excelutil from '../../utils/excelutil';
function content(props) }/>
)}function model(props),)
//清理工作
useeffect(()=>
})return reactdom.createportal((
), el);
}export default model;
這樣子子元素就出現在了我們想要的dom層級中
3.在呼叫頁中引入我們的model並定義相關觸發事件,這些與子節點向父節點的方式傳值無異
function registerinuser()
return(
//這裡是使用的地方
匯入人員
}>
匯出**
**於:
react的彈出層不同於以往的dom程式設計,我們知道,在dom中,彈出層事件繫結在對應的節點上即可,但是在react中,往往只能實現父子之間的傳遞控制,顯然,彈出層的層級不符合此關係。
在這裡我們需要使用react官方的portals
portals可以幫助我們將子節點插入到父節點層級之外的地方
注:官方文件使用的是class,我在這裡使用的是react hook
在react
react hook
useeffect
是了react生命週期中的componentdidmount
、componentdidupdate
以及componentwillunmount
三個鉤子函式的組合。
return(
)}2.實現彈出層
我們按照官方文件,先生成乙個節點el作為存放我們子節點的容器,並執行reactdom.createportal
reactdom.createportal(child, container)
我們需要先將我們的el節點插入選定的dom節點,然後再將portal元素插入dom樹中,故我們先用hook在componentdidmount
階段將el插入dom
(1)首先獲取我們要插入的dom節點id=model-root
const modelroot = document.getelementbyid('model-root');
(2)建立乙個存放子節點的元素el
const [el,changel] = usestate(document.createelement('div'));
(3)在componentdidmount
階段將el節點插入model-root
//初始化工作
useeffect(()=>,)
(4)渲染元件,執行createportal方法
return reactdom.createportal((
), el);
(5)在componentwillunmount
階段移除我們的el節點
//清理工作
useeffect(()=>
})
完整**如下:
import react, from 'react';
import './model.css';
import reactdom from "react-dom";
import excelutil from '../../utils/excelutil';
function content(props) }/>
)}function model(props),)
//清理工作
useeffect(()=>
})return reactdom.createportal((
), el);
}export default model;
這樣子子元素就出現在了我們想要的dom層級中
3.在呼叫頁中引入我們的model並定義相關觸發事件,這些與子節點向父節點的方式傳值無異
function registerinuser()
return(
//這裡是使用的地方
匯入人員
}>
匯出**
react 父子傳值 react學習之彈出層
eact的彈出層不同於以往的dom程式設計,我們知道,在dom中,彈出層事件繫結在對應的節點上即可,但是在react中,往往只能實現父子之間的傳遞控制,顯然,彈出層的層級不符合此關係。在這裡我們需要使用react官方的portals portals可以幫助我們將子節點插入到父節點層級之外的地方 注 ...
製作彈出層
最近在做乙個公司部落格,頁面上用到了很多彈出層,於是大家就仿照著其他 上的彈出層做了乙個。提示 頁面彈出層樣式 background outdiv outtitle titlelayer closelayer outcontent outbottom outdiv input 頁面彈出層 funct...
layer關閉彈出層,彈出列印
常規的話,下面能夠完成關閉彈出層 var index parent.layer.getframeindex window.name 延遲關閉 解決列印視窗彈不出來的情況 parent.layer.close index 可是當這裡需要關閉的同時彈出列印視窗的時候,就會發現失效了,能關閉,可是列印視窗...