【发布时间】:2021-10-19 00:46:34
【问题描述】:
是否可以通过 Vuex 状态访问类方法?
在以下情况下,我想调用fullName()来显示用户的格式化名称。
TypeError: store.state.user.fullName is not a function
类
export class User {
constructor(
public id: string = '',
public first_name: string = '',
public last_name: string = '',
) {}
fullName = (format: 'forward' | 'reverse' = 'forward') => {
if (format === 'forward') return `${this.first_name} ${this.last_name}`
if (format === 'reverse') return `${this.last_name}, ${this.first_name}`
}
}
export interface RootState {
user: User
}
Vuex
export const key: InjectionKey<Store<RootState>> = Symbol()
export default createStore<RootState>({
strict: true,
state: {
user: new User(),
},
})
组件
setup(){
const state = useState(key)
return {
name: computed(_ => store.state.user.fullName('forward'))
}
}
【问题讨论】:
标签: javascript typescript vue.js vuex vuejs3