Vuex + Typescript:突变对象有效负载始终未定义

Vuex + Typescript: Mutation Object Payloads are Always Undefined

在运行时,我作为次要参数传递给我的 Vuex 变异方法的对象负载始终是 undefined。我的 Vuex 和组件文件都是用 TypeScript 写的。

我的 Vuex 商店的 index.ts 文件如下所示(请注意,我使用的是模块化商店方法):

import Profile from '@/models/Profile'
import { createStore } from 'vuex'

const userModule = {
  state: () => ({
    profile: Profile
  }),
  mutations: {
    setProfile (state:any, profile: Profile) {
      // `state` is the local module state
      state.profile = profile //**RUNTIME ERROR: profile = undefined
    } 
  },
  getters: {
    getProfile (state:any) {
      return state.profile
    }
  }
}

export default createStore({
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    user: userModule
  }
})

我从我的 Vue 组件的 methods 提交到商店,如下所示:

 <script lang="ts">
 export default Vue.extend({
    methods: {
      fetchProfile() {
        axios
            .get("/getUser", requestHeader)
            .then((profileResponse: Profile) => {
              //store profile in Vue Store
              store.commit('setProfile', profileResponse)
            })
      }
    }
 })
 </script>

我做错了什么?

axios.get().then() 回调有一个 AxiosResponse 类型的参数,它将实际响应包装在 data 属性 中。代码应如下所示:

import axios, { AxiosResponse } from 'axios'

axios.get(/*...*/)
  .then((response: AxiosResponse) => {
    const profileResponse = response.data
    store.commit('setProfile', profileResponse)
  })