Ошибка в обработчике события для «click»: «ReferenceError: пользователь не определен» - PullRequest
0 голосов
/ 15 января 2019

Пожалуйста, помогите мне. Я работал в течение нескольких дней, пытаясь исправить эту ошибку и продолжая в конечном итоге вернуться к той же ошибке обработчика кликов "пользователь не определен". Я просто не могу понять, что это значит ... это vuejs / vuex / vuetify / firestore проект. Пожалуйста, любая помощь будет оценена.

соответствующий код от store/index.js

 updateUser({ commit, state },
        payload) {
        commit('setLoading', true);
        commit('clearError');
        firebase
            .firestore()
            .collection('users').doc(`users/${user.uid}`).add()
            .then((data, payload) => {
                const key = data.key;
                let displayName = payload.name;
                let address = payload.address;
                let city = payload.city;
                let state1 = payload.state1
                let zip = payload.zip
                let country = payload.country
                let company = payload.company
                let email = payload.email
                let phoneNumber = payload.phone
                commit('updateUser', {
                    id: key,
                    name: displayName,
                    phone: phoneNumber,
                    email: email,
                    address: address,
                    city: city,
                    state1: state1,
                    zip: zip,
                    country: country,
                    company: company
                })
            }).catch(err => {
                console.log(err)
            })
    },

Код компонента ...

methods: {
  onUpdate() { 
    this.$store.dispatch("updateUser", { 
      email: this.email, 
      name: this.name, 
      company: this.company, 
      address: this.address, 
      city: this.city, 
      state1: this.state1, 
      zip: this.zip, 
      country: this.zip, 
      phone: this.phone, 
    });
  },

1 Ответ

0 голосов
/ 15 января 2019

Предполагая, user является государственной собственностью, то есть

state: {
  loading: false,
  errors: [],
  user: null      // ? here
},

тогда ваш документ Firestore должен быть

.doc(`users/${state.user.uid}`)

Поскольку ваше действие выполняет асинхронные операции, вам следует рассмотреть возможность сделать его компонуемым , если оно возвращает обещание, например

updateUser({ commit, state }, payload) {
  commit('setLoading', true)
  commit('clearError')
  return firebase.firestore()... // ? note the "return" here

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