javascript - store dispatch-åtgärder är inte en konstruktor i Angular
Jag använder ngrx för att lagra data. Jag får följande fel när jag anropar en åtgärd?
_global_store_actions_auth_actions__WEBPACK_IMPORTED_MODULE_9__.SetAuthTokenRequest är inte en konstruktor
myKomponent.ts
import * as AuthActions from "../../global/store/actions/auth.actions";
import { Token } from "../../global/models";
const tk: Token = {
access_token: "string",
};
this.store.dispatch(new AuthActions.SetAuthTokenRequest(tk));
actions.ts
import { Action } from "@ngrx/store";
import { Token } from "../../models/token";
export declare enum AuthActionTypes {
SET_AUTH_TOKEN_REQUEST = "[Core] SET_AUTH_TOKEN_REQUEST",
export interface AuthenticationData {
user: string;
password: string;
}
export declare class SetAuthTokenRequest implements Action {
payload: Token;
readonly type = AuthActionTypes.SET_AUTH_TOKEN_REQUEST;
constructor(payload: Token);
}
reducer.ts
import { Token } from "../../models";
import { AuthAction, AuthActionTypes } from "../actions";
export interface AuthState {
token: Token;
unverifiedUserToken: Token;
}
const initialValue: AuthState = {
token: null,
unverifiedUserToken: null
};
export function auth(state = initialValue, action: AuthAction): AuthState {
switch (action.type) {
case AuthActionTypes.SET_AUTH_TOKEN_REQUEST:
return {
...state,
token: action.payload
};
default:
return state;
}
}
Svar #1
Det här är fel
export declare class SetAuthTokenRequest implements Action {
payload: Token;
readonly type = AuthActionTypes.SET_AUTH_TOKEN_REQUEST;
constructor(payload: Token);
}
Du behöver ändra så här
export class SetAuthTokenRequest implements Action {
public readonly type = AuthActionTypes.SET_AUTH_TOKEN_REQUEST;
constructor(public readonly payload: Token);
}
Du kan se min kod här
