vue相同层级组件之间传值?

实现将rm1组件中的token值,传给rm2组件
事件总线
bugevents.js

import Vue from 'vue'

export default new Vue;

rm1.vue

<el-button type="text" @click="sendToken">
      删除
</el-button>
------------
import bug from '../../../../static/js/bugevents.js';
data(){
        list: {
            token:1
        }
     
},
methods:{
       sendToken(){
        var token = this.list.token;        
        bug.$emit("usertoken",token)
      }
}

rm2.vue

<el-input v-model="token"></el-input>
----------
import bug from '../../../../static/js/bugevents.js';
data(){
    token:''
},
mounted(){
      //接受rm1传递过来的数据
      var self=this;
      bug.$on("usertoken",function(token){
          self.token=token;//这里并没有将值赋给data中的token,怎么解决这个问题
       })
}

是方法错误,还是代码错误呢? 望各路大神指点迷津

阅读 2k
3 个回答

报什么错了呢?

sendToken()要写在methods里吧

找到问题所在了,

mounted(){
      //接受rm1传递过来的数据
      var self=this;
      bug.$on("usertoken",function(token){
          self.token=token; 
          //console.log(self.token),这里是有值得
       })
}

值已经拿过来了,但是在

bug.$on("usertoken",function(token){
     self.token=token;
 })

里面取不出来,无法赋给data中的form,
这个该怎么解决?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题