我的问题是要求用户分页。以继电器入门套件为基础示例,
class User {}
class Widget {}
// Mock data
var viewer = new User();
viewer.id = '1';
getUser: (id) => id === viewer.id ? viewer : null,
getViewer: () => viewer,
如果这是一个真正的数据库,viewer
将是对数据库的请求。我们称之为fetchUser(id)
。
每次我们通过'{1}}向'用户'发出请求时,我们会调用nodeDefinitions
向getUser()
的数据库发出请求。
fetchUser(id)
当我们通过调用小部件(第一个:$ count)通过一个长的无限滚动小部件对'User'示例中的片段进行分页时,例如,通过将var {nodeInterface, nodeField} = nodeDefinitions(
(globalId) => {
var {type, id} = fromGlobalId(globalId);
if (type === 'User') {
return getUser(id);
递增3,然后我们重复进行为每个分页请求$count
到数据库。这通过每次为同一条数据发出请求来阻止数据分页。
我知道数据加载器,但有没有更简单的方法来缓存此请求,而不是必须进行数据库查询?
fetchUser(id)