【问题标题】:Life cycle Hook in vueJsvueJs 中的生命周期钩子
【发布时间】:2020-01-25 05:18:24
【问题描述】:

我使用 Firebase 身份验证进行用户身份验证,使用 Firestore 进行数据库,但我无法在用户及其广告系列之间同步。

campaigns: firestoreAction(({ bindFirestoreRef, getters }) => {
   return bindFirestoreRef(
      'campaigns',
      firebase.firestore().collection(`user_profile`).doc(getters.user.data.id).collection("campaigns"))
}),

并收到此错误:

vue.esm.js?a0​​26:628 [Vue 警告]:创建钩子时出错:“TypeError:无法读取属性 'id' of null”

有什么建议吗?

【问题讨论】:

    标签: vue.js vuex


    【解决方案1】:

    TypeError 表示您正在访问一个为空的对象的属性。

    可能是您的 getters.user.data 为 null,而您正试图访问 null 上的 id。

    请在浏览器控制台中打印您的 getters.user.data。

    【讨论】:

    • 是的。 getters.user.data 为 null,因为此操作在完成获取用户之前调用。
    • 如果不查看商店文件,我无法更详细地解释您,但我的建议是您应该创建一个操作,在收到响应时获取用户数据,然后调用活动操作。这样你会先得到用户数据。
    【解决方案2】:

    这就像你无法在你的 getter 中获取值一样,尝试在 vuex 中正确地改变用户对象,然后在 getter 中设置对象,可能是你没有得到正确的响应,或者如果得到那么可能无法进入该组件。

    【讨论】:

    • 我已将用户设置为 authchange。但问题是。在获取用户之前调用此广告系列操作。
    猜你喜欢
    • 2017-08-04
    • 2020-01-15
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2017-09-29
    • 2019-01-18
    相关资源
    最近更新 更多