Vuex打字稿获取记录值

时间:2020-04-06 06:06:29

标签: typescript ecmascript-6 vuex

我已经定义了一个接口IDatatype

interface IDatatype {
  Name: string,
  ...
}

interface RootState {
  records: Record<string, IDatatype>
}

但是我在从Veux商店getter方法中的记录中检索值时遇到问题

const store = new Vuex.Store<RootState>({
  state: {
    records: {},
  },
  mutations: {
    addRecords(state, records: IDatatype []) {
      records.forEach((rec) => {
        state.records[rec.Name] = rec
      })
      console.log(Object.values(state.records)) # => prints non empty list
    }
  },
  getters: {
    records: (state) : IDatatype [] => {
      console.log(state.records) # => prints non empty object
      console.log(Object.entries(state.records)) # => []
      console.log(Object.values(state.records)) # => []
      return Object.values(state.records)
    }
  }
})

如果我修改getter方法,则可以正常工作:

getters: {
    records: (state) : Record<string, IDatatype []> => {
      return state.records
    }
  }

Object.values(store.getters.records) // works correctly

0 个答案:

没有答案