最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

elementUI的table表格改變數(shù)據(jù)不更新問題解決

 更新時間:2022年02月24日 10:50:16   作者:三個木馬人  
最近在做vue的項(xiàng)目時發(fā)現(xiàn)了一個問題,今天就來解決一下,本文主要介紹了elementUI的table表格改變數(shù)據(jù)不更新問題解決,感興趣的可以了解一下

預(yù)期效果:點(diǎn)擊輸入框旁邊的圖標(biāo),輸入框變?yōu)榭奢斎霠顟B(tài);這里控制輸入的 editable 字段不是 data 原有的屬性,也不是 data 賦值時就存在的字段。

在這里插入圖片描述

問題原因:在 Vue 實(shí)例創(chuàng)建時,以及 data 賦值時 editable 并未聲明,因此就沒有被Vue轉(zhuǎn)換為響應(yīng)式的屬性,自然就不會觸發(fā)視圖的更新。

解決方法:

1、給 data 賦值前把 editable 屬性添加到數(shù)組里

這里就不貼代碼了,大概思路就是:獲取到列表信息之后緩存在一個臨時數(shù)組里(不可以是 data 里面定義好的對象),循環(huán)遍歷列表信息,給每一條數(shù)據(jù)都添加一個屬性 editable 值為 false,然后再把處理過的列表信息賦值給 data 。

2、使用:key 或者 v-if

修改綁定在 table 上面的 key 值,可以觸發(fā) table 的重新渲染,這樣就可以把修改后的 data 在表格里面更新渲染。

<el-table :data="data" :key='num' stripe border>
	<el-table-column align="center" label="字段中文名稱">
		<template slot-scope="scope">
    		<div style="display: flex;">
    			<el-input :disabled='!scope.row.editable' style="margin-right: 10px;"></el-input>
    			<el-button @click='changeEdit(scope.row)' type='text' icon="el-icon-edit-outline"></el-button>
    		</div>
    	</template>
    </el-table-column>
</el-table>
export default{
	data(){
		return{
			num:0,
			data:[]
		}
	},
	methods:{
		changeEdit(row){
			//每次點(diǎn)擊圖標(biāo) key 自動加一
			row.editable = true;
			num++;
		}
	}
}

這種方法有一個問題:給 table 添加一個默認(rèn)高度,這個時候數(shù)據(jù)比較多的話會出現(xiàn)滾動條;當(dāng)滾動條拉到下面,點(diǎn)擊圖標(biāo)讓對應(yīng)的輸入框可編輯,同時觸發(fā) table 渲染,滾動條會回到頂部,想查看被操作的輸入框需要重新把滾動條拉到最下面;這樣體驗(yàn)非常不好。如果有這樣的場景推薦使用下面的方法。

3、使用 $set

$set 可以讓動態(tài)的給 data 添加響應(yīng)式的屬性,讓 editable 變?yōu)轫憫?yīng)式的,就可以直接觸發(fā)頁面更新。

<el-table :data="data" stripe border>
	<el-table-column align="center" label="字段中文名稱">
		<template slot-scope="scope">
    		<div style="display: flex;">
    			<el-input :disabled='!scope.row.editable' style="margin-right: 10px;"></el-input>
    			<el-button @click='changeEdit(scope.$index,scope.row)' type='text' icon="el-icon-edit-outline"></el-button>
    		</div>
    	</template>
    </el-table-column>
</el-table>
export default{
	data(){
		return{
			num:0,
			data:[]
		}
	},
	methods:{
		changeEdit(index,row){
			row.editable = true;
        	this.$set(this.data,index,row);
		}
	}
}

根據(jù)上面的方法延伸 :當(dāng) vue 能夠檢測到數(shù)組的變化,觸發(fā)更新。

changeEdit(index,row){
	row.editable = true;
    this.data.splice(1,0);
}

到此這篇關(guān)于elementUI的table表格改變數(shù)據(jù)不更新問題解決的文章就介紹到這了,更多相關(guān)element table數(shù)據(jù)不更新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中{{}},v-text和v-html區(qū)別與應(yīng)用詳解

    vue中{{}},v-text和v-html區(qū)別與應(yīng)用詳解

    這篇文章主要介紹了vue中{{}},v-text和v-html區(qū)別與應(yīng)用詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 淺談vue自定義全局組件并通過全局方法 Vue.use() 使用該組件

    淺談vue自定義全局組件并通過全局方法 Vue.use() 使用該組件

    本篇文章主要介紹了vue自定義全局組件并通過全局方法 Vue.use() 使用該組件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Vue Router history模式的配置方法及其原理

    Vue Router history模式的配置方法及其原理

    這篇文章主要介紹了Vue Router history模式的配置方法及其原理,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果

    vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果

    這篇文章主要介紹了vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果,本文分步驟通過實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下
    2019-11-11
  • 解決Vue路由導(dǎo)航報錯:NavigationDuplicated:?Avoided?redundant?navigation?to?current?location

    解決Vue路由導(dǎo)航報錯:NavigationDuplicated:?Avoided?redundant?navig

    這篇文章主要給大家介紹了關(guān)于解決Vue路由導(dǎo)航報錯:NavigationDuplicated:?Avoided?redundant?navigation?to?current?location的相關(guān)資料,這是最近做項(xiàng)目時候遇到的一個問題,現(xiàn)將解決辦法分享出來,需要的朋友可以參考下
    2023-01-01
  • vue頁面批量引入組件的操作代碼

    vue頁面批量引入組件的操作代碼

    這篇文章主要介紹了vue頁面批量引入組件,本文結(jié)合示例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • 如何在在Vue3中使用markdown 編輯器組件

    如何在在Vue3中使用markdown 編輯器組件

    vue3發(fā)布正式版不久,生態(tài)還沒完全發(fā)展起來,目前支持vue3的開源markdown編輯器組件基本上也寥寥無幾,向大家推薦一個很好用的v-md-editor 組件,組件功能很強(qiáng)大,文檔也比較詳細(xì)。該文章只介紹組件的常用功能,更多高級的功能可以參考官方文檔。
    2021-05-05
  • Element?UI?Dialog對話框改成固定高度超出部分滾動條滾動

    Element?UI?Dialog對話框改成固定高度超出部分滾動條滾動

    這篇文章主要給大家介紹了關(guān)于Element?UI?Dialog對話框改成固定高度超出部分滾動條滾動的相關(guān)資料,el-dialog默認(rèn)高度是自由拉伸的,當(dāng)內(nèi)容超過屏幕時會出現(xiàn)滾動條,按鈕和標(biāo)題都會隨著滾動,用戶體驗(yàn)不好,需要的朋友可以參考下
    2024-05-05
  • vue中使用v-if,v-else來設(shè)置css樣式的步驟

    vue中使用v-if,v-else來設(shè)置css樣式的步驟

    我們在使用vue項(xiàng)目開發(fā)時,v-if是使用的非常多的,在這里我們談?wù)勅绾问褂胿-i來綁定修改css樣式,使用的主要是雙向數(shù)據(jù)綁定,即通過改變他的狀態(tài)來改變他的樣式,這篇文章主要介紹了vue中如何使用v-if,v-else來設(shè)置css樣式,需要的朋友可以參考下
    2023-03-03
  • Element Dialog對話框的使用示例

    Element Dialog對話框的使用示例

    這篇文章主要介紹了Element Dialog對話框的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

田东县| 迭部县| 南皮县| 遂川县| 吴堡县| 涞源县| 沂水县| 安康市| 延川县| 隆德县| 稻城县| 新昌县| 漠河县| 武功县| 商城县| 交城县| 文成县| 商河县| 蕉岭县| 灵璧县| 北碚区| 综艺| 新平| 衡水市| 九龙城区| 扎囊县| 鄂尔多斯市| 莎车县| 杭锦旗| 保山市| 宁蒗| 白银市| 汽车| 子洲县| 沙坪坝区| 宝鸡市| 毕节市| 河南省| 宝山区| 新建县| 会理县|