Есть ли способ прекратить запуск глубокого наблюдения, когда я удаляю или склеиваю элемент в массиве? - PullRequest
0 голосов
/ 16 февраля 2020

У меня проблема в Vue. js 2.0. Я заметил это, когда я удалил элемент из массива. Будет запущено глубокое наблюдение за компонентом, и будет сброшено значение каждого компонента после индекса удаленного элемента.

У меня есть компонент Filter Modal. Этот модальный компонент фильтра имеет опции фильтров различного типа. У него есть кнопка удаления, которая вызовет deleteFilter (index);

function deleteFilter(index) {
    this.filters.splice(index, 1);
}

this.filters - переменная массива, которая содержит выбранные фильтры.

И у меня есть компонент внутри модального фильтра, который является выбранным фильтром.

В модальном фильтре выбран фильтр, и для него выбрано v-значение фильтра. 1012 *

<filterselected>
    v-for='selectedFilter, index) in filters'
    :index='index'
</filterselected>

В выбранном фильтре имеются глубокие данные о его данных (). Это глубокое наблюдение за фильтром выбранного компонента, в основном используется для установки this.inputValue с передачей данных из события наблюдения. И будет отправлять обратно или будет отправлять значение родительскому компоненту.

ОСНОВНАЯ ПРОБЛЕМА

Таким образом, основная проблема заключается в том, когда я удалил элемент из массива ( this.filters), событие глубокого наблюдения будет запущено и установит this.inputValue со значением null или undefined или idontknow, а затем будет отправлено родительскому компоненту. Таким образом, когда будет проходить нулевое / неопределенное значение или значение idontknow, и если тип фильтра - фильтр выбора даты, тогда значение datepicker будет равно «NAN», потому что datepicker не может содержать подобное значение.

Так как предотвратить это?

ОБНОВЛЕНИЕ:

Пример события наблюдения

Watch: {
    date: {
        handler(val){
           this.inputValue = val;
        },
        deep: true
    },
    inputValue: function(){
        this.$emit('changeinput', { value: this.inputValue }
    }
}

Я заметил, что когда я При удалении элемента из массива будет запущено событие глубокого наблюдения (дата), и будет получено нулевое / неопознанное значение, для которого будет установлено значение this.inputValue.

Затем, если значение установлено на this.inputValue, также есть событие наблюдения, которое будет инициировано после, и эти часы передадут значение родительскому компоненту

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...