本文整理汇总了TypeScript中@ngxs/store.StateContext.patchState方法的典型用法代码示例。如果您正苦于以下问题:TypeScript StateContext.patchState方法的具体用法?TypeScript StateContext.patchState怎么用?TypeScript StateContext.patchState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@ngxs/store.StateContext
的用法示例。
在下文中一共展示了StateContext.patchState方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: updateSelectedStorage
@Action(BrowseStoragesSelectStorage)
updateSelectedStorage(ctx: StateContext<BrowseStoragesStateModel>, {payload}: BrowseStoragesSelectStorage) {
ctx.patchState({
...ctx.getState(),
selectedStorage: payload
});
}
示例2: toggleStorageSearchInput
@Action(BrowseStoragesToggleStoragesSearchInput)
toggleStorageSearchInput(ctx: StateContext<BrowseStoragesStateModel>) {
ctx.patchState({
...ctx.getState(),
showStoragesSearch: !ctx.getState().showStoragesSearch
});
}
示例3: tap
tap((storages: StorageEntity[]) => {
const state = ctx.getState();
ctx.patchState({
...state,
storages: storages,
loadingStorages: false,
});
})
示例4: deleteStorage
@Action(BrowseStoragesDeleteStorage)
deleteStorage(ctx: StateContext<BrowseStoragesStateModel>, {id}: BrowseStoragesDeleteStorage) {
ctx.patchState({
...ctx.getState(),
storages: [
...ctx.getState().storages.filter((s) => s.id !== id)
]
});
}
示例5: addStorage
@Action(BrowseStoragesAddStorage)
addStorage(ctx: StateContext<BrowseStoragesStateModel>, {storage}: BrowseStoragesAddStorage) {
ctx.patchState({
...ctx.getState(),
storages: [
...ctx.getState().storages,
storage
].sort((a, b) => a.id.toLocaleLowerCase().localeCompare(b.id.toLocaleLowerCase()))
});
}
示例6: login
@Action(LoginAction)
login(ctx: StateContext<SessionStateModel>, {payload}: LoginAction) {
ctx.patchState({state: 'pending'});
return this.auth.login(payload).pipe(
tap((state: SessionStateModel) => {
if (state.state === 'authenticated') {
localStorage.setItem('session', JSON.stringify(state));
}
ctx.setState(state);
}),
catchError((state: any, caught) => {
ctx.patchState(defaultSessionState);
console.log('Fatal authentication error!', state, caught);
return of(null);
})
);
}
示例7: loadRepositoriesOnStorageChange
@Action(BrowseStoragesSelectStorage)
loadRepositoriesOnStorageChange(ctx: StateContext<BrowseStoragesStateModel>, {payload}: BrowseStoragesSelectStorage) {
const loadRepositories = payload !== null;
ctx.patchState({
selectedStorage: payload,
loadingRepositories: loadRepositories
});
if (loadRepositories) {
return this.storageService
.getStorage(payload)
.pipe(
catchError((error: ApiResponse) => {
if (error.message.length > 0 && error.message.match(/storage/i)) {
this.notify.warning('Storage "' + payload + '" was not found.');
ctx.dispatch(new Navigate(['/admin/storages']));
} else {
this.notify.error('Could not retrieve repositories ' + payload + '!');
console.error('Could not retrieve repositories for storage ' + payload + '!', error);
}
return of(error);
}),
tap((storageEntity: StorageEntity) => {
let repositories = [];
if (storageEntity instanceof StorageEntity) {
// Add storageId to Repository (makes life easier afterwards in the UI)
repositories = storageEntity.repositories.map((repo) => {
repo.storageId = payload;
return repo;
}).sort((a, b) => a.id.toLocaleLowerCase().localeCompare(b.id.toLocaleLowerCase()));
}
ctx.patchState({
...ctx.getState(),
repositories: repositories,
loadingRepositories: false
});
})
);
}
}
示例8: invalidCredentialsSessionState
@Action(InvalidCredentialsAction)
invalidCredentialsSessionState(ctx: StateContext<SessionStateModel>) {
ctx.patchState({state: 'invalid.credentials'});
}
示例9: catchError
catchError((state: any, caught) => {
ctx.patchState(defaultSessionState);
console.log('Fatal authentication error!', state, caught);
return of(null);
})