Как перезаписать элементы ввода в сеансе в Vue.js? - PullRequest
0 голосов
/ 29 мая 2019

Когда экран ввода открывается, когда отображается экран, элементы ввода на экране устанавливаются из информации о сеансе.Однако, хотя jQuery выполняет переключение отображения на основе значения элемента ввода на экране, переключение выполняется на основе начального значения (для программы), а не информации сеанса.Предположительно, переключение отображения jQuery выполняется до того, как будет установлена ​​информация о сеансе (начальные данные установлены в элементе ввода).

Например, в следующем источнике сеанс установлен, но экран отображается ссодержимое категории = 1.

И проблема в том, что отображается следующее предупреждение:

[Предупреждение Vue]: избегайте добавления реактивных свойств в экземпляр Vue или его корень$ data во время выполнения - объявите это заранее в опции data.

data: {
    url: "",
    category: 1,
    errors: {},
},
created: function() {
    let count_data = 0;
    for (let key in old_data) {
        if (old_data[key] != null && old_data[key] != "") {
            count_data += 1;
        }
    }
    if(count_data > 0) {
        for(let key in old_data){
            this.$set(this, key, old_data[key]);
        }
    }else{
        let that = this;
        axios.get('api/getSession')
            .then(res => {
                Object.entries(res.data).map(function(data){
                    that.$set(that, data[0], data[1]);
                });
            })
    }
},

1 Ответ

0 голосов
/ 29 мая 2019

Это консольное сообщение генерируется всякий раз, когда к объекту, возвращенному из данных, добавляется новое свойство. Вы не должны получать это сообщение для таких свойств, как «категория» или «URL», но вы получите его, если будет добавлено что-то еще.

Попробуйте генерировать консольные сообщения везде, где вызывается $set, чтобы убедиться, что key или data[0] не является новым неизвестным свойством. Если это так, попробуйте добавить его к объекту данных в виде пустой или пустой строки.

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