直到刷新页面,我的Vue代码才起作用。注释的回复已成功发送到数据库,但是直到刷新页面或添加注释然后刷新然后添加答复后,浏览器中才会显示该注释。
Comments.vue
我的方法
appendReply(comment,reply){
_.find(this.comments, { id: comment.id }).children.push(reply)
},
已安装
bus.$on('comment:replied', ({ comment, reply }) => {
this.appendReply(comment, reply)
this.scrollToComment(reply)
})
我在控制台中收到此错误
[Vue警告]:事件处理程序中的“ comment:replied”错误:“ TypeError: 无法读取未定义的属性“ push”
答案 0 :(得分:0)
由于我知道您在哪里获得了这段代码,流程是什么,我将为您提供解决问题的方法。
Alex在解释appendReply
方法时,将whenLoaded
中的CommentResource
保留在'replies' => CommentResource::collection($this->replies)
的答复(子项)上。
要解决此问题,您需要转到后端提供的Commentresource类,并将对此代码的回复(子级)属性设置为:
'children' => CommentResource::collection($this->children)
或者您的情况
...