下面我有一個我目前在應用程式中面臨的例子:
app.module.ts
@NgModule({
...
imports: [StoreModule.forRoot(reducers)],
...
})
export class AppModule {}
店鋪
users: {...}
文章.module.ts
@NgModule({
...
imports: [StoreModule.forFeature('articles', reducers)],
...
})
export class ArticlesModule {}
用戶導航到/articles,然后articles狀態切片將被添加到存盤中
店鋪
users: {...},
articles: {...}
現在,假設最初,商店只有users, 并且在一個組件(屬于 users 模塊)內,我使用的是selector,我遇到的問題是,我需要在選擇器中知道articles切片是否已添加到商店與否,但我不能使用任何articles選擇器,因為我收到此錯誤
在初始化之前無法訪問“selectArticles”......`
有沒有辦法詢問商店是否包含加載的某個切片?
uj5u.com熱心網友回復:
正如您所注意到的,您只能在.forFeature加載模塊后在存盤資料上使用選擇器。
為了解決這個問題,您應該在使用選擇器之前更早地加載商店。一個好的模式是為您的商店創建一個單獨的模塊并從 app.modules 匯入它
我建議您也添加一個 app.store 模塊。隨著代碼的增長,您將不得不添加更多的商店模塊。
新的 app.store.module:
@NgModule({
imports: [
StoreModule.forRoot(reducers),
...
ArticleStoreModule
],
})
export class AppStoreModule {}
新文章.store.module:
@NgModule({
imports: [
StoreModule.forFeature('articles', reducers)),
...
],
})
export class ArticleStoreModule {}
而不是將你新AppStoreModule匯入你的 app.module
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467702.html
