Javascript Vue.js-当子组件位于内部时,无法访问此。$parent<;过渡>;
我想要什么:我有两个组件,父组件(Wall.vue)和子组件(positem.vue)。每个Javascript Vue.js-当子组件位于内部时,无法访问此。$parent<;过渡>;,javascript,vue.js,vuejs2,vue-component,vue-transitions,Javascript,Vue.js,Vuejs2,Vue Component,Vue Transitions,我想要什么:我有两个组件,父组件(Wall.vue)和子组件(positem.vue)。每个positem都有一个删除按钮。单击后,将发送对my API的请求,并从数据库中删除该项。然后我想调用父组件的getPosts函数再次获取所有帖子(这次没有删除的帖子) 问题:在子组件中,我无法访问this.$parent对象(或者更具体地说,它只是空的,不包含函数),因此我无法调用getPosts-函数。当我移除父组件中的时,它也围绕着子组件,一切都正常 这里有什么问题 父组件(Wall.vue) 模板
positem
都有一个删除按钮。单击后,将发送对my API的请求,并从数据库中删除该项。然后我想调用父组件的getPosts
函数再次获取所有帖子(这次没有删除的帖子)
问题:在子组件中,我无法访问this.$parent
对象(或者更具体地说,它只是空的,不包含函数),因此我无法调用getPosts
-函数。当我移除父组件中的
时,它也围绕着子组件,一切都正常
这里有什么问题
父组件(Wall.vue)
模板部分:
无法加载邮件。请稍后再试。
脚本部分:
从“vuex”导入{mapGetters};
从“../services/posts.service.js”导入{postsAPI};
从“../components/positem.vue”导入positem;
导出默认值{
组成部分:{
职位,
},
数据(){
返回{
消息:空,
};
},
方法:{
getPosts(){
///////做事
}
}
};
子组件(positem.vue)
模板部分
{{message.content}
发件人:{{message.user.username}
删除
脚本部分:
从“../services/posts.service.js”导入{postsAPI};
从“vuex”导入{mapGetters};
导出默认值{
名称:'PostItem',
道具:{
信息:{
类型:对象,
要求:正确,
},
索引:{
类型:数字,
要求:正确,
},
},
计算:{
…地图绘制者({
用户:“auth/user”,
}),
},
方法:{
删除邮件(e){
const id=e.target.dataset.id;
postsAPI.removeOne(id).然后((res)=>{
this.$parent.getPosts();通常认为使用this.$parent
(它耦合组件并降低封装/代码的清晰度)是一种不好的做法。当子组件想要向祖先组件发送信息时,它应该发出一个事件
删除直接访问并$emit
一个名为“已删除”的事件:
deletePost(e){
const id=e.target.dataset.id;
postsAPI.removeOne(id).然后((res)=>{
这是。$emit('deleted');//发出事件
});
},
父级应侦听该已删除的事件,并运行事件处理程序:
当被@deleted
事件侦听器触发时,父级将调用getPosts
方法