【问题标题】:Accessing state inside action shows empty state在操作中访问状态显示为空状态
【发布时间】:2021-10-27 08:39:12
【问题描述】:

重新加载页面后(使用 vuexPersistedState),我在如下操作中访问我的状态:

    updateOuterValue: ({
        commit
    }, data) => {
      console.log(state);
      ...
    }

localstorage 显示保留状态,它也按应有的方式传递给组件。 但是在动作内部,状态是空的。怎么会显示空状态值?

【问题讨论】:

    标签: vue.js vuex


    【解决方案1】:

    好的,我明白了。我可以使用getters 访问action 中的状态:

        updateOuterValue: ({
            commit,
            getters
        }, data) => {
          ...
          console.log(getters.getForm); // WORKS
          ...
        }
    
    

    另一种方法是直接处理state,例如:

        updateOuterValue: ({
            commit,
            state       // <--- HERE
        }, data) => { ... }
    

    【讨论】:

      【解决方案2】:

      您的操作方法的第一个参数是上下文,第二个参数是有效负载:

       updateOuterValue: (context, data) => { 
         //here you could get access to the other options via context
      
           context.state.outerValue=data;
      
       }
      

      或像您在回答中所做的那样破坏上下文

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-15
        • 2014-10-14
        • 1970-01-01
        • 2020-01-19
        • 1970-01-01
        • 2023-04-04
        相关资源
        最近更新 更多