【发布时间】:2019-02-18 06:06:15
【问题描述】:
如果我的搜索输入包含任何文本,我会尝试仅显示叠加层。
这是我的模板,我的输入字段是:
Input.vue:
<template>
<div>
<input v-model="query" class="input" placeholder="Global search..."></input>
</div>
</template>
<script>
export default {
data() {
return {
query: '',
};
}
};
</script>
当我签入控制台时,query 会更新我在输入字段中写入的任何文本。
然后我尝试将此变量传递给另一个组件,该组件包含我的叠加 div:
Overlay.vue:
<template>
<div v-if="this.$root.query.length > 0">
<div class="search-overlay is-active"></div>
</div>
</template>
但是,这给了我以下错误:
[Vue 警告]:渲染错误:“TypeError: Cannot read property 'length' of undefined”
我在这里做错了什么?
【问题讨论】:
-
为什么需要
this.$root?您能否提供有关您的不同组件的更多详细信息? -
将您的
query对象作为您的覆盖组件的道具:<overlay :query="query" />并在您的Overlay.vue中定义该道具。
标签: javascript vue.js vuejs2