-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
I am trying to make the library work with Nuxt.
The docs say that what you need is:
export class UserStore extends createModule({ target: "nuxt" }) {
...
}To test it, I created a new file in the store folder of my Nuxt project. The file contains the class of the example in the docs:
import { createModule, mutation, action } from 'vuex-class-component'
export class UserStore extends createModule({
strict: false,
target: 'nuxt'
}) {
firstname = 'Michael'
lastname = 'Olofinjana'
specialty = 'JavaScript'
@mutation clearName() {
this.firstname = ''
this.lastname = ''
}
@action async doSomethingAsync() {
const val1 = await new Promise(() => this.firstname)
return val1
}
@action async doAnotherAsyncStuff(payload: { func: Function }) {
const number = await this.doSomethingAsync()
payload.func()
return payload + this.fullname + number
}
// Explicitly define a vuex getter using class getters.
get fullname() {
return this.lastname + this.firstname
}
// Define a mutation for the vuex getter.
// NOTE this only works for getters.
set fullname(name: string) {
const names = name.split(' ')
this.firstname = names[0]
this.lastname = names[1]
}
get bio() {
return `Name: Specialty: ${this.specialty}`
}
}I would expect this code to create a new module with the name of the file and relative state (firstname, lastname, specialty), and the getters defined by the class, as well as actions and mutations.
The code compiles, but then the store seems to be empty (from Vuejs devtool):
user: Object (empty), and getter are not present at all.
How can I make it work? Am I missing something?
Metadata
Metadata
Assignees
Labels
No labels