AK47
  • 230

最认真的提问之Vue非父子组件之间通信的bug

1.一共三个组件
-1- 点餐组件
-2- 已点组件
-3- 按钮组件(添加餐品的按钮)
2.逻辑功能
-1- 在点餐组件里面点击添加按钮,想要在已点里面展示
3.已有代码
-1- 点餐组件:

clipboard.png

将这个计算组件传入按钮组件:

clipboard.png

-2- 按钮组件里面接受这个值并且传递给已选组件:

clipboard.png

-3- 已选组件:

clipboard.png

4.问题:
每个餐品需要点击两次才能显示在已点组件里。

5.个人分析:
没有经过点击添加事件时,餐品的count一开始是没有的,所以传递给按钮组件其实是个空的;当点击了添加按钮之后,将餐品的count加1之后,点餐组件里的计算属性判断才会通过,这样才会显示出来;每个餐品都是这样

6.如果直接传值给已选组件,并且如果已选是选餐的子组件,是没问题的;但是现在问题是这两者不是父子的关系,是兄弟关系,试着通过eventbus,但是也还是不行,eventbus是页面created的时候只会执行一次

7.求问怎么解决┭┮﹏┭┮

阅读 585
评论 更新于 2018-04-19
    1 个回答
    Villee_
    • 1.3k

    哇苏大小学妹,我觉得你放弃 Bus,用 vuex 吧,这种情况把数据都放在 store 里就好了,不需要处理这么多事件,只要关心怎么修改数据就好了,在别的组件里可以直接拿到商品数据,不需要通过事件来通知其他组件。

    评论 赞赏 2018-04-18
      撰写回答

      登录后参与交流、获取后续更新提醒