Vue添加元素不能实时渲染
今天遇到了一个很奇怪的问题,如下
有如下数据结构
reply_info:[
{
"reply_reply_box": {
"state": false,
"reply_for_name": "回复@ZHF",
"reply_text": "回复内容"
},
"blog_id": "博客ID",
"reply_user": "评论用户",
"reply_id": 0,
"user_head_img": "img/head.jpg",
"reply_text": "加载中···",
"reply_time": "加载中···",
"have_son_reply": true,
]
}
]
现想添加一个reply
键,变成如下结构
reply_info:[
{
"reply_reply_box": {
"state": false,
"reply_for_name": "回复@ZHF",
"reply_text": "回复内容"
},
"blog_id": "博客ID",
"reply_user": "评论用户",
"reply_id": 0,
"user_head_img": "img/head.jpg",
"reply_text": "加载中···",
"reply_time": "加载中···",
"have_son_reply": true,
"reply": [
{
"blog_id": "博客ID",
"reply_user": "评论用户",
"reply_id": 0,
"user_head_img": "img/head.jpg",
"reply_text": "加载中···",
"reply_time": "加载中···",
"have_son_reply": true
}
]
}
]
最开始,我使用了如下方法添加reply
键
reply_info[0]['reply'] = [];
再使用如下方法添加元素
reply_info[0]['reply'].push({
"blog_id": "博客ID",
"reply_user": "评论用户",
"reply_id": 0,
"user_head_img": "img/head.jpg",
"reply_text": "加载中···",
"reply_time": "加载中···",
"have_son_reply": true
})
发现,虽然在Vue中添加成功了,但网页并没有渲染出来,如何解决呢?
我们使用
this.$set(被添加键的对象 ,键名,元素);//如果需再添加一个数组则填[]
来代替原有的
reply_info[0]['reply'] = [];
即可