使用場景分析:
進入頁面表格數據渲染的時候,如果數據中paid是1的話,那么這一列表格就默認選中
解決方法:
后台數據返回后,使用element中的toggleRowSelection方法,這個方法用於多選表格,切換某一行的選中狀態,如果使用了第二個參數,則是設置這一行選中與否(selected 為 true 則選中)
//先寫一個方法 toggle(data) { if (data.length) { this.$nextTick(function() { data.forEach(item => { //如果數據中的paid == 1的話 讓這一列選中 if (item.paid == 1) { //multipleTable 是這個表格的ref屬性 true為選中狀態 this.$refs.multipleTable.toggleRowSelection(item, true); } }) }) } },
//當獲取到數據的時候調用下這個方法
this.signtableData = data.data.order_goods_list; this.toggle(this.signtableData)
如果不加this.nextTick的話不起作用官方文檔是這樣解釋的:Vue在更新DOM時是異步執行的,為了在數據變化之后等待Vue完成更新DOM,可以在數據變化之后立即使用Vue.nextTick(callback)。這樣回調函數將在DOM更新完成后被調用個人猜想是數據賦值后還沒有給DOM綁定上所以使用nextTick的話不起作用 官方文檔是這樣解釋的:Vue 在更新 DOM 時是異步執行的,為了在數據變化之后等待 Vue 完成更新 DOM,可以在數據變化之后立即使用 Vue.nextTick(callback)。這樣回調函數將在 DOM 更新完成后被調用 個人猜想是數據賦值后還沒有給DOM綁定上 所以使用nextTick的話不起作用官方文檔是這樣解釋的:Vue在更新DOM時是異步執行的,為了在數據變化之后等待Vue完成更新DOM,可以在數據變化之后立即使用Vue.nextTick(callback)。這樣回調函數將在DOM更新完成后被調用個人猜想是數據賦值后還沒有給DOM綁定上所以使用nextTick等數據循環在dom上之后再調用這個方法就ok了