如何解決element-ui中多個table在tab切換時出現(xiàn)寬度縮小問題
解決element-ui中多個table在tab切換時出現(xiàn)寬度縮小問題
用的是vue
的element-ui
前端框架
今天遇到一個小問題,花了我?guī)讉€小時才研究
先看圖
我需要在兩個tab
中各自放一個table
,并且其中一個table
的數(shù)據(jù)變化時,另一個table
也需要變化,當(dāng)我在第一個table
刪除數(shù)據(jù)后,第一個table
會刷新,然后第二個table
也會刷新。
然后我切換到第二個tab
時,table
變成這樣了,表格的寬度縮小。
研究了好久,最后用
以下方法解決
//我第一個table的ref值為tableContract,第二個table的ref值為tableTodo //第一個tab的name值為contract,第二個tab的name值為todo //tab的tab-click事件 tabClick({name}){ //根據(jù)點擊的tab的name值,判斷對應(yīng)的table let ref=(name=='contract'?'tableContract':'tableTodo') this.$nextTick(()=>{ this.$refs[ref].doLayout() }) }
其實一開始也有用到table
的doLayout
,但我忽略一個重點的地方,就是用nextTick
,記得之前在哪個博客看過,element-ui
很多問題用nextTick
跟setTimeout
都能解決的
更新?。?/h2>
后面實踐后,發(fā)現(xiàn)用nextTick
還是有點小bug,如下圖
這是因為一個tab
有滾動條切換到一個沒有滾動條的tab
,后面用setTimeout
就解決問題了,測試過延遲100毫秒,比較完美
//我第一個table的ref值為tableContract,第二個table的ref值為tableTodo //第一個tab的name值為contract,第二個tab的name值為todo //tab的tab-click事件 tabClick({name}){ //根據(jù)點擊的tab的name值,判斷對應(yīng)的table let ref=(name=='contract'?'tableContract':'tableTodo') setTimeout(()=>{ this.$refs[ref].doLayout() },100) }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue 使用v-if切換輸入框時導(dǎo)致輸入框的數(shù)據(jù)內(nèi)容沒有清空的問題解決(兩種解決方法)
這篇文章主要介紹了vue 使用v-if切換輸入框時導(dǎo)致輸入框的數(shù)據(jù)內(nèi)容沒有清空的問題解決,本文給大家分享兩種解決方法,需要的朋友可以參考下2023-05-05基于vue-cli3和element實現(xiàn)登陸頁面
這篇文章主要介紹了vue-cli3和element做一個簡單的登陸頁面本文實例圖文相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11Vue文件的組織結(jié)構(gòu)不合理之優(yōu)化項目結(jié)構(gòu)詳解
在這篇博客中,我們將探討 Vue 文件組織結(jié)構(gòu)不合理的幾個常見問題,并提供解決方案,以幫助開發(fā)者創(chuàng)建更清晰、更高效的項目文件結(jié)構(gòu),希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03關(guān)于Elementui中toggleRowSelection()方法實現(xiàn)分頁切換時記錄之前選中的狀態(tài)
這篇文章主要介紹了關(guān)于Elementui中toggleRowSelection()方法實現(xiàn)分頁切換時記錄之前選中的狀態(tài),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03