Как обновить свойство Akita state 'ui'

У меня есть интерфейс состояния Akita, настроенный с соответствующим хранилищем, как показано ниже...

export interface GdTaskState extends EntityState<GdTask, number> {
  dataPage: {
    tasksLoaded: boolean;
    pageNumber: number;
    pageSize: number;
    totalTasks: number;
  };
  ui: {
    view: TaskView;
    folderFilter: FolderFilter;
    filter: TaskFilter;
    tableRows: number;
    heightSet: boolean;
    tableHeight: number;
    tableWidth: number;
  };
}

Я пытаюсь настроить метод хранилища для обновления только свойства tableHeight, не затрагивая какие-либо из существующих свойств пользовательского интерфейса. Как мне это сделать?

Документы Akita показывают это как формат...

введите здесь описание изображения

... но это, кажется, отключает все остальные свойства на уровне "ui"


person user2868835    schedule 13.07.2020    source источник


Ответы (1)


Если я правильно понял вопрос -

В служебном файле вызовите метод обновления магазина, а затем обновите его с помощью оператора распространения. Например,

changeTableHeight(value) {
   this.todosStore.update((todoState) => ({
        ui: {..todoState.ui.tableHeight, value }
    }));
}
person Parijit Kedia    schedule 14.07.2020