请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

非父子组件传值问题


https://img1.sycdn.imooc.com//szimg/5b232aff000177e407801052.jpg
老师我这段代码哪出问题了,刚开始随便点击哪个子组件都发生变化,点击第二次就没反应了,每次都只能刷新点击1次,正确的效果应该不用刷新,点哪个子组件都会发生变化的

正在回答 回答被采纳积分+3

2回答

vylss 2018-07-05 02:08:01

当你点击hello时,selfContent的值是hello,触发点击事件hello传递change事件和selfContent给其他兄弟组件,之后全部的兄弟组件(包括自身)的selfContent值都变成了hello。之后再点击其他的组件比如world,他传递出去的selfContent还是hello,然后其他的兄弟组件又把已经是hello的selfContent重新赋值hello。你在 _this.selfContent = msg前面加一个alert(msg),每点击一次都弹出3次hello。我是这样想的不知道对不对。

0 回复 有任何疑惑可以回复我~
  • vylss #1
    handleClick() {
                    this.bus.$emit('change', this.content)
                }
    这样写才能有老师做出来的那种效果
    回复 有任何疑惑可以回复我~ 2018-07-05 02:09:20
qq_你是我的阳光_1 2018-06-15 14:48:08

刚开始点击发生变化是因为有一个值跟你点击的值是不一样的,所以发生变化,你点击一次后,3个值都是一样的,再点击其中一个也都是一样的,肯定不会有变化啊,貌似是这样

0 回复 有任何疑惑可以回复我~
  • 提问者 精慕门9545340 #1
    老师的操作是2个一样的值的时候,点击第二个子组件也会发生变化,我在相同的子组件都绑定的点击事件,不管每个值是否一样,都应该点击有效果的
    回复 有任何疑惑可以回复我~ 2018-06-15 15:11:31
  • 空山鸟不语 回复 提问者 精慕门9545340 #2
    视频里第二次点击之前是有刷新网页的操作,14:35左右。
    回复 有任何疑惑可以回复我~ 2019-01-02 17:11:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信