我如何通过一个动作绑定一个ref到一个Pinia状态变量,在Vue 3?



我正在使用vueUse库中的useFirestore可组合组件-我已经成功地响应绑定了我的标题"文档到titles存储变量,但是,当我试图通过一个动作绑定userData时,什么都没有发生(注意:我的Firebase配置很好)。

正确的做法是什么?

// user.store.js
import { defineStore } from "pinia";
import { useFirestore } from "@vueuse/firebase/useFirestore";
import { db, doc } from "../../../config/firebase";
export const useUserStore = defineStore("user", {
  state: () => ({
    titles: useFirestore(doc(db, "titles", "available")), // <-- this works and binds the firestore document
    userData: null,
  }),
  getters: {
    getUserData: (state) => state.userData,
  },
  actions: {
    setUserData(uid) {
      this.userData = useFirestore(doc(db, "users", uid)); // <-- this doesn't do anything and userData is `null` in the dev tools.
    },
  }
});
// Component.vue
...
setUserData("my-id");

啊,我忘了使用$patch

setUserData(uid) {  
  const user = useFirestore(doc(db, "users", uid));
  this.$patch({ userData: user });
}

如果我用错了,请告诉我。

最新更新