如何在Falcor中查找单个项目



我很难弄清楚如何为检索单个记录构建路由。例如,假设我有以下路线:

itemsById[{integers:itemIds}]["id"]["name"]
userItems[{integers:itemIndices}]

因此,userItems路由查找itemsById路由中的相关项目数据。这对于我的应用程序的列表视图来说很好,但是,我不知道如何为显示(显示单个项目)视图定义路线。

我想,如果我在列表视图中,我可以存储用户单击的项目的索引,然后在itemsById路由中查找该索引,但用户可能会直接浏览到显示查看路由,这意味着我无法知道itemsById索引。

我想我可以定义一条退货路线:

userItem[{integers:itemId}]

这条路线将itemId作为一个参数,然后在itemsById中查找它,但这似乎并不正确,因为Falcor建议您不应该使用ID。

我可能错过了什么。有人知道这里的正确方法是什么吗?

我想你已经接近了。据我所知,这将是您的个人物品查找路线:

itemsById[{keys:itemIds}][{keys:props}]

itemIds将作为一个项目ID数组传递给您的路由器。如果用户查看的是单个项目的详细信息视图,则浏览器的URL可能包含以下内容:/items/7bca23。因此,在客户端上,您可以使用model.get('itemsById.7bca23.name')获取该项目的名称。

同时,对于列表视图,您会有这样的路线:

itemsByIndex[{integers:indices}]

indices将作为一系列数字传递给您的路由器。在客户端上,您可以执行model.get('itemsByIndex[0..20].name')。然后从该路径返回一组对象,如下所示:

{
  path: [ 'itemsByIndex', 0 ],
  value: { $type: 'ref', value: [ 'itemsById', '7bca23' ] }
}

Falcor将在同一请求期间跳到itemsById路由,以提供所请求的图片段的其余部分。

最新更新