vue 数据可以console.log出来,但是页面渲染不出来

我从购物车跳转到下单详情页,想把购物车的数据传过去,用的是eventBus,已经可以console.log出来了,但是页面渲染出来

clipboard.png

clipboard.png

clipboard.png

======================================
path 不能接收 parmams的值,要用name

clipboard.png

clipboard.png

阅读 9.8k
2 个回答

我总感觉你的order组件里触发不到事件的才是对的。因为你是先$emit后router跳转,那么$emit触发的时候,order组件还没创建,事件也就不存在,是无法触发的。
建议你改用params传值,即

// 传
this.$router.push({name: 'order', params: {food: xxx}})
// 收
this.selectFood = this.$route.params.food

然后你能把你现在的代码传到github上吗?
有空了我想看看你的$on是怎么被触发的。

请不要在这种情况使用箭头函数,写成这样便可以了:

created(){
    var self = this;
    Bus.$on('getTarget', selectFoods => {
        self.selectFoods = selectFoods;   //这里若是直接使用this,它指向的就不是Vue实例了,也就控制不了data里面的数据。
    };
}
推荐问题