蓬莱百度微信小程序_vue中$set的使用(结合在实践应用中遇到的坑

vue中$set的使用(结合在实际应用中遇到的坑)       这篇文章主要介绍了vue中$set的使用(结合在实际应用中遇到的坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近在开发过程中遇到一个问题。在节点上面写点击事件时,点击事件不执行。代码如下:

 !-- 操作 -- 
 el-table-column label="操作" 
 template slot-scope="scope" 
 span @click='scope.row.edit=!scope.row.edit' 
 svg-icon :icon-class="scope.row.edit 'icon_edit_outline':'icon_save'" /svg-icon 
 /span 
 span 
 svg-icon icon- /svg-icon 
 /span 
 /template 
 /el-table-column 
 !-- 操作 -- 

这里面的click事件一直不执行,一开始以为是点击事件没写对一直在找原因,后面突然想到会不会是数据不同步的原因的,因为edit字段是自己添加进去的字段,如下:

export default {
 name: 'strategic',
 data() {
 return {
 tableData: [{
 'pp_id': 4,
 'brand_name': '1414', 
 'project_name': '得意', 
 'description': '的u会回来会', 
 'publish_time': '',
 'is_used': 0 
 components: { },
 computed: {
 created() {
 this.initTableData()
 methods: {
 initTableData() {
 this.tableData.forEach(element = {
 element.edit = false

之后我直接在数据里面加上edit字段,发现是能够同步数据的,代码如下:

data() {
 return {
 tableData: [{
 'pp_id': 4,
 'brand_name': '1414',
 'project_name': '1414',
 'description': '',
 'publish_time': '',
 'is_used': 0,
 'edit': false

原来是在我们使用vue进行开发,当生成vue示例后,再次给数据赋值时,有时候并不能自动更新到数据上去,这时候我们就要通过$set来解决这个问题,解决代码如下:

initTableData() {
 this.tableData.forEach(element = {
 this.$set(element, 'edit', false)

至此就解决啦。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持凡科。


相关阅读