VueStoreFront:自定义模块:状态已更新,组件未更新

时间:2019-07-14 07:24:20

标签: vue.js vuex vue-storefront

我正在创建一个自定义模块,该模块将获取“ afterRegistration”挂钩中的数据,并将结果保存到存储中。

状态已更新(可以在VueDevTools中看到更新),但是组件仍为默认状态。我在做什么错了?

// afterRegistration
export function afterRegistration ({Vue, config, store, isServer}) {
  store.dispatch(${KEY}/isVisible)
}

// component
export default {
  name: 'Test',
  components: { Fragment },
  props: {
   …
  },
  computed: {
    isVisible: el => el.$store.getters['myModule/simpleTest']
  }
}

2 个答案:

答案 0 :(得分:0)

您失去了反应性。将状态对象中的simpleTest的初始值设置为您喜欢的任何值(从上下文中我看到它是Boolean)。如果该字段不是初始状态,则没有该方法的吸气剂或塞特阀。

答案 1 :(得分:0)

好吧,我发现我需要在AsyncLoader中调度

// afterRegistration
export function afterRegistration ({Vue, config, store, isServer}) {
  AsyncDataLoader.push({
   execute: ({ route, store, context }) => {
    return new Promise ((resolve, reject) => {
      store.dispatch(`${KEY}/getInlineTranslationConfig`)
        .then(() => resolve(null))
    })
  }
})

现在可以了!