代码之家  ›  专栏  ›  技术社区  ›  Shamoon

监视vuex状态不能让我访问它的值

  •  0
  • Shamoon  · 技术社区  · 5 年前

    在我的 store.js

    state: {
      User: false
    },
    

    getters User 一旦设置好就成为一个对象。在我的组件中,我有:

    export default {
      name: "ConversationsList",
      mixins: [conversationMixin],
      computed: {
        ...mapState(["User"])
      },
      data: () => {
        return {
          conversations: false,
          datedConversations: false
        };
      },
      watch: {
        User: {
          immediate: true,
          handler(newVal, oldVal) {
            console.log(newVal, oldVal);
    

    但是 newVal 如何将它们作为常规属性访问?

    User object getters and setters

    1 回复  |  直到 5 年前
        1
  •  1
  •   Andrew Vasylchuk    5 年前

    像普通物业一样访问它们:

    在中访问它 script :

    const email = User.email
    

    template :

    <template>
      <span>{{ User.email }}</span>
    </template>
    

    Vue将getter和setter应用于每个属性,以实现其反应性。从上面的代码中可以看到,每个属性都是用getter和setter初始化的,因此每次更改它时,Vue都可以重新调用模板的相应部分。

    我建议你阅读 getters setters .