ngrx 信号特征存储可以访问其消费存储的状态吗?

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

我想定义一个特征存储,它将存储中的状态作为输入(或引用),该状态使用/消耗存储,例如ngrx 信号特征存储的父级。

例如,我有一个名为“withCounters()”的商店,其中包含一个名为“counterA”、类型为“number”的“状态变量”。我想添加一个可以访问这些状态变量的特征存储。

export function withCounters() {
    withState({
        counterA: 0
    }),

    withDecrement(state)
}

“withDecrement”功能应该能够访问其消费者状态,例如“counterA”变量。

 export function withDecrement(consumerState: NgRxParentStore) {
    return signalStoreFeature(

        withMethods((consumerState) => ({

            logState() {
                console.log(consumerState);
            },

            decrement(key: keyof consumerState) {
                patchState(consumerState, {key: consumerState[key]-1});
            }
        }))
    )
}

这可行吗?如果是,怎么办?我的主要问题是如何访问消费者的商店状态?

angular signals ngrx angular-signals
1个回答
0
投票

如果不耦合商店,直接访问似乎是不可能的。

ngrx 团队建议使用包装函数:https://github.com/ngrx/platform/issues/4340

在此处阅读完整线程:

带有包装函数的工作示例:https://stackblitz.com/edit/ngrx-signal-store-starter-z3q5i5?file=src%2Fmain.ts

由于耦合而无法工作的示例:https://stackblitz.com/edit/ngrx-signal-store-starter-23tsna?file=src%2Fmain.ts

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