Ошибка в обратном вызове для наблюдателя «get_settings»: «TypeError: Невозможно прочитать свойство 'general' из undefined» - PullRequest
0 голосов
/ 16 ноября 2018

Пожалуйста, помогите мне, как справиться с этой ошибкой, я не могу справиться с этим, поскольку я новичок в vue.то, что я делаю, это получение данных с сервера в магазине vuex с действием.Теперь в компоненте я обращаюсь к этим данным с помощью getter в вычисляемом свойстве и пытаюсь просмотреть это свойство, но при монтировании компонента я получаю эту ошибку в консоли, но функциональность работает нормально.

data:function()
{
      return{
   settings_flags:{
                    general:0,
                    privacy:0,
                    layouts:0,
                    message:0

                },
}
}

1: монтирование

mounted(){

            let self =this;
            self.userid = this.getUserId();
            this.$store.dispatch('getGallerySettings',self.req);
            self.initial_settings();

        },

2: вычислено

computed: {

            get_settings(){
                return this.$store.getters.getGallerySettings;

            },
},

3: часы

    watch:{
            'get_settings':{
                deep: true,
                handler() {
                    let self =this;

                    if(this.$_.isMatch(self.get_settings.gallery_settings.general,self.initialSettings.gallery_settings.general) == false){

                            self.settings_flags.general = 1;
                        }else{

                            self.settings_flags.general = 0;
                        }

},
},

1 Ответ

0 голосов
/ 19 ноября 2018

Мне кажется, что ваш наблюдатель ищет свойство 'general', которое является потомком gallery_settings.

get_settings.gallery_settings.general

Тем временем в данных у вас есть общее свойство, которое является потомком 'settings_flags'. Эти двое не выстраиваются в линию. Поэтому убедитесь, что ваш наблюдатель ищет что-то, что существует при запуске компонента, или скажите своему наблюдателю, чтобы он начал смотреть «get_settings.gallery_settings.general» только тогда, когда «get_settings.gallery_settings» действительно существует.

if (get_settings.gallery_settings) { do something } #pseudocode

Я не уверен, что это ваша проблема, но это может быть.

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