[英]flux / react: how to handle filtered api-data in a store
我創建了一個使用通量模式並從API中提取數據的應用程序。 這是更新數據現在的工作原理:
get()
動作 到目前為止這個工作正常。 但現在我想知道我將如何進行過濾。 例如,對於特定組件(“通知”),我只想返回未讀通知或給定時間段內的通知。 當我實現一個動作getByStatus(status)
getByDate(start, end)
,整個商店只會包含未讀通知或時間段中的通知,當你想要同時顯示所有通知和未讀通知時,這是一個問題時間。
是唯一的方法來創建一個使用javascript / lodash或類似的過濾器方法? 這會使服務器端的任何過濾都過時,並導致大量(不需要的)流量。 而創建像“UnreadNotificationStore”這樣的獨立商店將是非常難以處理的,並且在時間段的情況下問題仍然存在。 我能想到的唯一方法是添加getByStatus(status)
操作而不更新存儲,並將數據直接返回給組件。
您實際上是在談論從內存客戶端已有的有效負載中過濾項目,還是需要從服務器對這些“過濾器”進行新的提取?
如果只是過濾客戶端:
collection
分支中。 filter
變量中。 .filter
方法過濾您的collection
,並將過濾后的id存儲在filteredCollection
變量中。 getFilteredItems
一樣向商店添加一個getter,它返回映射到collection
完整記錄的過濾id。 如果每次從服務器獲取:
filteredCollection
而不僅僅是id。 (除非你最終會在內存中結束大量數據,在這種情況下你可以考慮維護一個集合,你可以通過服務器的每次提取來擴充,然后從中進行過濾,但這會增加一些復雜性,我不會除非你確定你會有記憶問題,否則不建議。) 還有許多其他可能性,但這是一個合理的起點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.