vue中$set的使用(結合在實際應用中遇到的坑)
最近在開發(fā)過程中遇到一個問題。在節(jié)點上面寫點擊事件時,點擊事件不執(zhí)行。代碼如下:
<!-- 操作 --> <el-table-column label="操作"> <template slot-scope="scope"> <span class="poi icon-hover f16 mr20" @click='scope.row.edit=!scope.row.edit'> <svg-icon :icon-class="scope.row.edit?'icon_edit_outline':'icon_save'"></svg-icon> </span> <span class="poi icon-hover f16"> <svg-icon icon-class="icon_delete"></svg-icon> </span> </template> </el-table-column> <!-- 操作 -->
這里面的click事件一直不執(zhí)行,一開始以為是點擊事件沒寫對一直在找原因,后面突然想到會不會是數(shù)據(jù)不同步的原因的,因為edit字段是自己添加進去的字段,如下:
export default { name: 'strategic', data() { return { tableData: [{ 'pp_id': 4, 'brand_name': '1414', 'project_name': '得意', 'description': '的u會回來會', 'publish_time': '2018-07-23', 'is_used': 0 }] } }, components: { }, computed: { }, created() { this.initTableData() }, methods: { initTableData() { this.tableData.forEach(element => { element.edit = false }) } } }
之后我直接在數(shù)據(jù)里面加上edit字段,發(fā)現(xiàn)是能夠同步數(shù)據(jù)的,代碼如下:
data() { return { tableData: [{ 'pp_id': 4, 'brand_name': '1414', 'project_name': '1414', 'description': '7588888888', 'publish_time': '2018-07-23', 'is_used': 0, 'edit': false }] } }
原來是在我們使用vue進行開發(fā),當生成vue示例后,再次給數(shù)據(jù)賦值時,有時候并不能自動更新到數(shù)據(jù)上去,這時候我們就要通過$set來解決這個問題,解決代碼如下:
initTableData() { this.tableData.forEach(element => { this.$set(element, 'edit', false) }) }
至此就解決啦。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決vue watch數(shù)據(jù)的方法被調用了兩次的問題
這篇文章主要介紹了解決vue watch數(shù)據(jù)的方法被調用了兩次的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11VUE 無限層級樹形數(shù)據(jù)結構顯示的實現(xiàn)
在做項目中,會遇到一些樹形的數(shù)據(jù)結構,常用在左側菜單導航,本文就介紹一下如何實現(xiàn),感興趣的可以了解一下2021-07-07解決echarts圖表使用v-show控制圖表顯示不全的問題
這篇文章主要介紹了解決echarts圖表使用v-show控制圖表顯示不全的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07vue項目如何監(jiān)聽localStorage或sessionStorage的變化
這篇文章主要介紹了vue 項目如何監(jiān)聽localStorage或sessionStorage的變化,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2021-01-01