如何解决 Uncaught ReferenceError: bus is not defined? (vue.js 2)
Posted
技术标签:
【中文标题】如何解决 Uncaught ReferenceError: bus is not defined? (vue.js 2)【英文标题】:How to solve Uncaught ReferenceError: bus is not defined? (vue.js 2) 【发布时间】:2017-07-06 09:54:36 【问题描述】:我遵循这个教程:https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication
将数据从一个组件传递到另一个组件
请看下面我的案例。我试试这样
我的看法是这样的:
<div class="row">
<div class="col-md-3">
<search-filter-view ...></search-filter-view>
</div>
<div class="col-md-9">
<search-result-view ...></search-result-view>
</div>
</div>
我的搜索过滤视图组件是这样的:
<script>
export default
props:[...],
data()
return
...
,
methods:
filterBySort: function (sort)
bus.$emit('sort-param', sort)
this.sort = sort
...
</script>
我的搜索结果视图组件是这样的:
<script>
export default
props:[...],
data()
return
...
,
methods:
getVueItems: function(page)
bus.$on('sort-param', function (sort)
console.log(sort);
)
...
</script>
我在 \resources\assets\js\app.js 上添加 var bus = new Vue();
所以它可以在任何地方访问
我想将排序参数(filterBySort方法,组件一)的值显示到getVueItems方法(组件二)
执行时,控制台中存在如下错误:
Uncaught ReferenceError: bus is not defined
我该如何解决这个错误?
【问题讨论】:
【参考方案1】:您需要确保定义变量var bus = new Vue();
的代码在使用此变量的代码之前执行。
另外,确保总线变量可以被使用它的代码访问。
【讨论】:
【参考方案2】:您需要从App.vue
中导出变量总线并将其导入您需要的任何位置。
我个人做的是为它创建一个专用文件:bus.js
import Vue from 'vue'
export default new Vue()
并在需要的地方像这样导入它:
import bus from 'path/of/bus'
<script>
export default
props:[...],
data()
return
...
,
methods:
filterBySort: function (sort)
bus.$emit('sort-param', sort)
this.sort = sort
...
</script>
【讨论】:
监听事件怎么样?以上是关于如何解决 Uncaught ReferenceError: bus is not defined? (vue.js 2)的主要内容,如果未能解决你的问题,请参考以下文章
下载大尺寸json时如何解决Uncaught RangeError
EasyNTD线上报错“Uncaught TypeError”该如何解决?
EasyNTD线上报错“Uncaught TypeError”该如何解决?
如何解决“Uncaught (in promise) TypeError: response.body.forEach is not a function”? (vue.js 2)
如何解决 Uncaught ReferenceError: bus is not defined? (vue.js 2)
如何解决 index.js:9 Uncaught TypeError:无法读取未定义的属性“setWallpaper”?