我使用mobx-state-tree
获得了一个目前只有几个简单商店的应用:
Article
代表一篇文章,通过第三方API提供或内部编写ArticleStore
包含对文章的引用:{ articles: {}, isLoading: bool }
此设置适用于简单的用例,例如根据ID获取文章。 E.g。
/article/{articleUri}
articleStoreInstance.fetch([articleUri])
返回有问题的文章articleStoreInstance.articles.get(articleUri)
对于更复杂的场景,如果我想根据复杂查询获取一组文章,例如{ offset: 100, limit: 100, freeTextQuery: 'Trump' }
,我应该:
SearchResult
商店,该商店只链接到用户搜索过的文章SearchResult
商店?我应该补充一点,我希望在页面加载之间将文章保留在商店中,以避免反复重新获取相同的内容。
是否有一种解决此问题的标准化方法?有什么例子可以看吗?
答案 0 :(得分:0)
您可能需要一个 private static void SendBytesToPrinter(string printerName, IntPtr pointerBytes, int bytesCount)
{
int written = 0;
PrintResult printResult = new PrintResult();
IntPtr pointerPrinter = new IntPtr(0);
DOCINFOA docInfo = new DOCINFOA();
bool success = false;
docInfo.DocName = "RAW Document";
docInfo.DataType = "RAW";
try
{
if (OpenPrinter(printerName.Normalize(), out pointerPrinter, IntPtr.Zero))
{
if (StartDocPrinter(pointerPrinter, 1, docInfo))
{
if (StartPagePrinter(pointerPrinter))
{
success = WritePrinter(pointerPrinter, pointerBytes, bytesCount, out written);
EndPagePrinter(pointerPrinter);
}
EndDocPrinter(pointerPrinter);
}
// READ HERE
Int32 bufLen = 32;
IntPtr pStatus = Marshal.AllocCoTaskMem(bufLen);
Int32 statusLen = 0;
bool bSuccess = ReadPrinter(hPrintJob, pStatus, bufLen, out statusLen);
ClosePrinter(pointerPrinter);
}
} catch (Exception ex) { }
}
商店来跟踪以下信息:
然后,为了避免将文章存储在2个地方,查询结果不应使用Search
模型,而应引用Article
模型。每次查询时,实际结果将保存在现有存储区Article
中,而ArticleStore
仅保存引用:
Search
希望这就是您想要的。