#vue.js #vuetify.js
Вопрос:
Я использую Vue2
и. Vuetify
У меня есть компонент селектора, который extend
соответствует стандарту VAutocomplete
. Согласно логике компонента, мне нужно отображать loading
при загрузке данные. Если вы сделаете отдельный компонент, это решится просто:
<template><v-autocomplete :loading="loading" /></template>
<script>
export default {
name: 'CustomSelect',
data() { return { loading: false } },
methods: {
methodWithLoading() {
this.loading = true
// do code...
this.loading = false
},
},
}
</script>
В случае расширения код будет выглядеть следующим образом:
<script>
import VAutocomplete from 'vuetify/lib/components/VAutocomplete'
export default VAutocomplete.extend({
name: 'CustomSelect',
methods: {
methodWithLoading() {
this.loading = true
// do code...
this.loading = false
},
},
})
</script>
loading
работает, потому что loadable
глубоко внутри VAutocomplete
prop
loading
есть смесь, в которой есть «а». Это prop
отвечает за полосу загрузки, локальная переменная или метод не используются, т. е. опора напрямую влияет на полосу загрузки.
И здесь начинается проблема: я не могу просто изменить this.loading
внутри компонента, потому что вы не можете поместить значения props
напрямую.
Как мне установить значение this.loading
(мне все равно, может ли родительский компонент перезаписать его)?
Комментарии:
1. Похоже, это обычная проблема двусторонней привязки. Используйте событие для связи с родителем вместо
loading
прямой настройки. Если это не соответствует делу, то подумайте о том, чтобы объяснить это дальше.2. @EstusFlask Моя проблема не связана с родителем. Мне нужно установить
loading
внутри этого компонента отображение панели загрузки, и родитель не влияет на это.3. Ты пробовал
data() { return { loading: false } }
? Я не проверял, как VAutocomplete работает внутренне, но загрузка данных, вероятно, должна переопределять реквизит с тем же именем.4. Это приводит к ошибке, из-за которой данное имя перезаписывает имя
props
.5. В общем, мой вопрос довольно общий — могу ли я (и как, если да, то) переписать
prop
компонент внутри этого компонента?