list.service.ts的getData方法裡的this.load觸發時,this實際指向UserListService:
SAP Spartacus B2B User list頁面的資料加載邏輯 觸發點還是list頁面的async pipe:
SAP Spartacus B2B User list頁面的資料加載邏輯 ListService在運作時的執行個體化成UserListService,在userCmsConfig裡完成:
SAP Spartacus B2B User list頁面的資料加載邏輯 getUserList:調用this.store.select:
SAP Spartacus B2B User list頁面的資料加載邏輯 getUserList的實作:
SAP Spartacus B2B User list頁面的資料加載邏輯 這裡才執行createSelector?
SAP Spartacus B2B User list頁面的資料加載邏輯 createSelector的傳回結果:
SAP Spartacus B2B User list頁面的資料加載邏輯 傳回一個Observable對象:
SAP Spartacus B2B User list頁面的資料加載邏輯 select的輸入參數:輸入一個函數,該函數的類型定義:
接受一個輸入參數,類型為T,輸出參數為K,整個select調用傳回的類型為:Observable:
SAP Spartacus B2B User list頁面的資料加載邏輯 問題來了:this.store.select輸入的,到底是selector,還是純函數projection?
從接口看,是一個selector:
SAP Spartacus B2B User list頁面的資料加載邏輯 這裡開始加載list:
SAP Spartacus B2B User list頁面的資料加載邏輯 先take,再map:
SAP Spartacus B2B User list頁面的資料加載邏輯 注意,這裡傳回的是string,而不是Observable:
SAP Spartacus B2B User list頁面的資料加載邏輯 準備加載B2BUsers,參數為userId和params:
SAP Spartacus B2B User list頁面的資料加載邏輯
SAP Spartacus B2B User list頁面的資料加載邏輯
SAP Spartacus B2B User list頁面的資料加載邏輯
SAP Spartacus B2B User list頁面的資料加載邏輯 這個return語句會觸發reducer的狀态遷移:
SAP Spartacus B2B User list頁面的資料加載邏輯 這個payload裡怎麼隻有一條資料?
SAP Spartacus B2B User list頁面的資料加載邏輯 似乎是在一個循環裡被反複觸發:
SAP Spartacus B2B User list頁面的資料加載邏輯 确實是在循環裡:高階reducer
SAP Spartacus B2B User list頁面的資料加載邏輯
SAP Spartacus B2B User list頁面的資料加載邏輯