vue.js - Vue v-model绑定到父组件输入元素不起作用
问题描述
我正在使用 Vue、Nuxt、Vue Good Table 实时搜索表格。我创建了一个名为 的子组件child.vue
,并将其导入到父页面parent.vue
中。我曾经在父组件v-model
中绑定元素。当我运行它时,实时搜索不起作用。我从控制台收到警告。你能帮帮我吗?我是 Vue.js 的新手。谢谢searchTerm
input
Property or method "searchTerm" is not defined on the instance but referenced during render.
为了child.vue
<template>
<vue-good-table
:columns="columns"
:rows="rows"
:search-options="{
enabled: true,
externalQuery: searchTerm
}"
:sort-options="{
enabled: false,
}"
:group-options="{
enabled: true,
}"
/>
</template>
<script>
export default {
name: 'my-component',
data() {
return {
searchTerm: '',
columns: [xxxx]
}
}
}
</script>
为了parent.vue
<template>
<div>
<input type="text" placeholder="Live Search" v-model="searchTerm" />
</div>
<div>
<child />
</div>
</template>
解决方案
将 prop 从 parent 传递给 child,并searchTerm
在 parents 中定义data
<template>
...
<input type="text" placeholder="Live Search" v-model="searchTerm" />
<child :searchTerm="searchTerm" />
...
</template>
<script>
data(){
return {
searchTerm: ''
}
}
...
</script>
在 child 中定义 prop,并searchTerm
在 childs中删除data
<script>
export default {
...
props: ['searchTerm'],
...
data(){
return {
//searchTerm: '' <- remove this from child
}
}
...
}
</script>
您现在可以searchTerm
在孩子<template>
或this.$props.searchTerm
孩子中访问<script>
推荐阅读
- webpack - `-r dotenv/config` 有什么作用?
- c - 使用 c 应用程序清除 COM 设备中的 STALL 条件
- python-3.x - webbrowser.get('safari').open(url) 如果未打开 safari,则首先在默认浏览器中打开 URL?
- javascript - 当浏览器窗口最小化时,GWT scheduleFixedDelay 方法不起作用
- javascript - 单击按钮时删除/隐藏多个 div
- php - 我想查看product_name。错误是 - 此集合实例上不存在属性 [product_name]。(abc.blade.php)
- vue.js - 如何向 vuepress 博客添加语法高亮?
- java - Bukkit:getInstance 为空
- python - 多个客户的IP地址交易列表数据以表格形式给出。开发一个程序在python中计算
- flutter - Flutter 使用 workmanager 在准确时间显示本地通知