项目场景:关于兄弟组件之间数据的传递
问题描述:兄弟组件使用$bug,数据没有传过去,为undefined
分析:兄弟组件之间的传值
1.在main.js中
Vue.prototype.$bus = new Vue()
2.在要传值的组件中
this.$bus.$emit('todosAll',list) //第一个为参数名称,第二个为传入的数据值
3.接收的组件中
mounted(){
this.$bus.$on('todosAll',res => {
this.msg=res
console.log(res)
})
// console.log(this.bus);
}
原因分析:
提示:检测要传值中组件的数据是否能打印出来以及数据的格式
要传值的组件
async onSubmit() {
let result = await reqIndustrial(
this.username,
this.phone,
this.checked,
// this.value,
this.result,
this.adress,
this.message
);
console.log(result);
this.$bus.$emit('todosAll',list) //传值
if(result.code==200){
Toast.success('提交成功');
this.$router.push('/getup')
}else{
Toast.fail('提交失败');
}
},
接收值的组件
mounted(){
this.$bus.$on('todosAll',res => {
this.msg=res
console.log(res)
})
// console.log(this.bus);
}
解决方案:
提示:在传值的组件中发现数据的格式不对,我又重新创建了个遍历将结果赋值到数组中问题解决了
async onSubmit() {
let result = await reqIndustrial(
this.username,
this.phone,
this.checked,
// this.value,
this.result,
this.adress,
this.message
);
console.log(result);
var arr = result.data
var list = []
for(let i = 0; i<arr.length; i++){
list.push(arr[i])
}
this.$bus.$emit('todosAll',list)
if(result.code==200){
Toast.success('提交成功');
this.$router.push('/getup')
}else{
Toast.fail('提交失败');
}
},