반응형
동적 및 네임스페이스 모듈이 등록되지 않았습니다(vuex-module-decorator, vuex-class).
모듈이 등록되지 않았습니다.
$nuxt.$store._modulesNamespaceMap // No properties
그리고 다음과 같은 경고를 받고 있습니다.
Classic mode for store/ is deprecated and will be removed in Nuxt 3.
제가 시도한 것:
- 모듈을 수동으로 로드하여 네임스페이스가 작동하는지 확인합니다(FAIL).
- 모듈(FAIL)을 동적으로 로드하려면 네임스페이스를 사용하지 마십시오.
코드:
// @/store/modules/User.ts
import { Module, VuexModule, Mutation, Action } from "vuex-module-decorators";
import { firebase, auth, GoogleProvider, StoreDB } from "@/services/fireinit";
import { IUser } from "~/types/user";
import { store } from "..";
// It seems like the "store" is messed somehow
@Module({ dynamic: true, namespaced: true, store: store, name: "user" })
export default class User extends VuexModule {
user: IUser = null;
@Action
async autoSignIn(user: IUser) {
this.context.commit("setUser", user);
}
@Action
async signInWithGoogle() {
return new Promise(resolve => {
console.log("signInWithGoogle:", this);
auth.signInWithRedirect(GoogleProvider);
resolve();
});
}
// trunked ...
}
// @/store/index.ts
import Vuex, { Store } from "vuex";
import User from "./modules/User";
// trunked ...
// Declare empty store first
export const store = new Vuex.Store<IStoreType>({});
const createStore = () => store;
export default createStore;
// @/pages/login.vue
// trunked ...
const User = namespace('user'); // [vuex] module namespace not found in mapActions(): user/
@Component({})
export default class LoginComponent extends Vue {
@User.State("activeUser") stateUser;
@User.Action("signInWithGoogle") actionSignInWithGoogle;
}
트리:
├── pages
│ └── login.vue
├── store
│ ├── index.ts
│ └── modules
│ └── User.ts
동적으로 로드하고 네임스페이스 모듈을 로드할 수 있을 것으로 예상됩니다.
저는 월드 와이드 웹에서 찾을 수 있는 모든 것을 시도했지만 그것이 작동하도록 할 수 없습니다.
내가 뭘 잘못하고 있는 거지?
좋아요, 저는 그 방법을 찾았어요...
코드:
// @/store/index.ts
import Vuex, { Store } from "vuex";
import User from "./modules/User";
// trunked ...
// Declare empty store first
export const store = new Vuex.Store<IStoreType>({});
// No more "createStore" shit.
// @/pages/login.vue
// trunked ...
const User = namespace('modules/User/'); // "modules/" is important to make it work.
@Component({})
export default class LoginComponent extends Vue {
@User.State("activeUser") stateUser;
@User.Action("signInWithGoogle") actionSignInWithGoogle;
}
언급URL : https://stackoverflow.com/questions/55470351/dynamic-namespaced-modules-not-registered-vuex-module-decorators-vuex-class
반응형
'programing' 카테고리의 다른 글
PowerShell에서 모든 빈 폴더를 재귀적으로 제거하는 방법은 무엇입니까? (0) | 2023.07.31 |
---|---|
tnsping을 설치하는 방법은 무엇입니까? (0) | 2023.07.31 |
여러 테이블에 여러 개의 FULL OUTER JOIN(전체 외부 조인 (0) | 2023.07.31 |
PSObject 개체의 새 복제 인스턴스를 생성하는 방법 (0) | 2023.07.31 |
Restful API 서비스 (0) | 2023.07.31 |