如何使用 patchState (Angular Signal Store) 将元素添加到 ngrx 中的数组

问题描述 投票:0回答:1

我有一个状态:

type MyState = {
    elements: ElementDTO[] | undefined,
};

还有 NGRX - 信号商店:

export const ElementStore = signalStore(
{providedIn: "root"},
withState<ElementState>(initialState),
.
.
withMethods((store) => ({
    .
    .
    pushElement(element: ElementDTO): void {
        patchState(store, {
            elements: [...store.elements(), element]
        });
    }
    })
    ),
)

但我收到错误:

错误 TS2488:键入 'ElementDTO[] | undefined' 必须有一个返回迭代器的 'Symbol.iterator' 方法。

这里出了什么问题?

angular ngrx store
1个回答
0
投票

经过几个小时的尝试,这似乎有效

  pushActivation(element: ElementDTO): void {
      patchState(store, {
           elements: [...store.elements() as ElementDTO[], element]
      });
  }

奇怪的是,IntelliJ 在这一行仍然显示错误。但是,该应用程序可以编译并且似乎可以运行。 ngrx 的语法似乎是直接来自地狱!

© www.soinside.com 2019 - 2024. All rights reserved.