一、問題描述
antd pro項目開啟qiankun作為主應用後,輸入項目位址,我們會發現,我們看不到我們想要的頁面,呈現在眼前的隻是一個加載頁,如下圖:

其實細心的人會發現,該頁面存在滾動條,滾動下去即可看到項目目前路由的頁面,隻是加載頁處于上方布局,一直存在不會消失而已。為什麼會這樣呢?看下圖,我們會發現加載頁和登入頁挂載的dom節點并不一樣。
loading加載頁挂載在id為“root”的dom節點下(antd pro預設挂載節點為root),而登入頁挂載在id為“root-master”的dom節點下(@umijs/plugin-qiankun插件預設挂載節點為root-master)。總體而言,産生上述問題的原因就在于,使用qiankun插件後,更改了頁面要渲染到的dom節點位置。
二、解決方案
方案1:
修改document.ejs檔案(src/pages/document.ejs),将id="root"改為id="<%= context.config.mountElementId %>",即将id修改為config.ts 中的mountElementId,這樣當mountElementId被修改後可以確定ejs存在該dom節點
方案2:
修改document.ejs檔案(src/pages/document.ejs),将id="root"改為id="root-master",并修改全局樣式中的“#root”改為“#root-master”
方案3:
config.ts配置檔案配置mountElementId,重新指定下 react app 渲染到的 HTML 元素 id。
mountElementId: 'root',
感謝您讀完本文!如果本文對您有幫助,請點個贊呗,您的點贊是對我最大的支援和認可!
我的公衆号:大前端教程,歡迎關注,會定期更新前端知識,希望能幫到您。