javascript - vue 发出事件并在父组件中接收
问题描述
嗨,我有两个组件,我在一个组件中得到响应,需要传递并推送父组件的数组。下面是我的代码。我没有收到回复。在Userstatuscomponent.vue
我的方法很少,无论我得到什么响应,我都想将它传递给UserComponent.vue
并将其推送到 users[] 数组中。我想我做错了什么。请帮我。用户组件.vue
<template>
<div>
<Status v-on:updateStatus="receiveResponse(userData)"></Status >
<div class="card" >
<div class="card-header">
<div class="card-body" v-for="user in users.data" >
</div>
</div>
</div>
</div>
</template
<script type="application/javascript">
import Status from '../components/UserstatusComponent.vue'
export default {
data() {
return {
users: [],
};
},
created() {
this.getResult();
},
components: {
Filter
},
methods: {
getResult() {
axios
.get("/api/result")
.then(response => {
this.users = response.data;
})
.catch(error => console.log(error));
},
receiveResponse(userData){
this.users = userData
},
//HERE I HAVE RECEIVED THE EVENT and update users array
receiveResponse(user){
this.users = user
},
}
};
</script>
Now I have some method in UserStatusComponent and I want to pass the response from this component to UserComponent.vue
UserstatusComponent.vue
<template>
<div class="">
<a
@click.prevent="updateOne"
>update one</a
>
<a
@click.prevent="updateTwo"
>update two</a
>
</div>
</div>
</div>
</template>
<script>
export default {
data(){
return{
}
},
updateOne() {
axios
.get("/api/result", {
params: {
status: "bad"
}
})
.then(response => {
this.$emit('updateStatus',response.data);
});
},
updateTwo() {
axios
.get("/api/result", {
params: {
stauts: "good"
}
})
.then(response => {
this.$emit('updateStatus',response.data);
});
},
}
</script>
解决方案
当你想通过emit
,在父组件中传递数据时,你不必在函数中放置参数。这是一些代码更新(未测试)
v-on:updateStatus="receiveResponse"
updateStatus
函数将具有参数,尽管这是子组件通过的参数$emit
。
receiveResponse(userData){
this.users = userData
}
<div class="card-body" v-for="user in users.data" >
中应该有可迭代的v-for
。怎么样v-for="user in users"
?
推荐阅读
- javascript - 反应路由器:链接更改网址但不加载组件
- java - 如何查看哪个布局膨胀失败?
- assembly - 组装:自定义操作系统键盘支持的引导加载程序
- python - 在 Pandas DataFrame 中使用条件语句派生具有特定值的新列
- java - 如何用三个复合主键和一个外键编写 JPA Hibernate 实体?
- sql-server - SQL Server:插入后更新同一个表
- excel - 如何在 MS Excel 中跨列按字母顺序对行进行排序?
- html - 如何在 Laravel 5.7 中制作与提交按钮功能相同的图标链接?
- python - 我可以在不使用 Sprites 的情况下使用 .colliderect() 吗?-Py游戏
- java - 如何使用移动加速度计计算虚拟球的高度