子组件有个el-selection 如何让子组件初始化默认展示父组件传的值 然后进行选折的时候搜索框展示选中的值
时间: 2023-11-09 09:07:40 浏览: 74
可以通过在子组件的`mounted`生命周期钩子中,使用`this.$refs`来获取到`el-select`组件实例,并调用`this.$refs['el-select'].remoteMethod(query)`方法来设置`el-select`组件的默认值以及实现选项的搜索。
具体的实现步骤如下:
1. 在父组件中,将默认值通过props传递给子组件:
```html
<template>
<div>
<child-component :default-value="defaultValue"></child-component>
</div>
</template>
<script>
export default {
data() {
return {
defaultValue: '默认值'
}
}
}
</script>
```
2. 在子组件中,接收父组件传递的默认值,并在`mounted`钩子中设置`el-select`组件的默认值:
```html
<template>
<div>
<el-select v-model="selectedValue" ref="el-select" :remote-method="search" filterable>
<el-option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</template>
<script>
export default {
props: {
defaultValue: String
},
data() {
return {
selectedValue: '',
options: [
{
label: '选项1',
value: '1'
},
{
label: '选项2',
value: '2'
}
]
}
},
mounted() {
this.selectedValue = this.defaultValue
},
methods: {
search(query) {
// 通过远程搜索接口获取选项数据
// ...
// 搜索完成后,设置选中的值
this.selectedValue = '选中的值'
}
}
}
</script>
```
在子组件的`mounted`钩子中,通过`this.selectedValue = this.defaultValue`来设置`el-select`组件的默认值。然后,在`search`方法中,可以通过调用远程搜索接口来获取选项数据,并在搜索完成后,设置`this.selectedValue`来展示选中的值。注意,`remote-method`属性需要设置为`search`方法,以支持搜索功能。同时,为了支持选项的搜索,需要将`el-select`组件的`filterable`属性设置为`true`。
这样,就可以让子组件初始化默认展示父组件传的值,并且在选项搜索时展示选中的值。
阅读全文