2

我正在创建一个自定义模块,它在“<code>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']
  }
}
4

2 回答 2

0

你已经失去了反应。将状态对象的初始值设置为simpleTest您喜欢的任何值(从我看到的上下文中Boolean)。如果该字段未处于初始状态,则该字段没有 getter 或 setter。

于 2019-07-14T20:24:27.103 回答
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))
    })
  }
})

现在它起作用了!

于 2019-07-15T09:11:39.633 回答