我正在开发一个使用Bacon.js构建的应用程序,并使用React进行渲染(虽然这似乎与问题密切相关。我正在构建一个页面,它是一个无限滚动的数据列表你可以对结果进行过滤或排序,添加或删除列。我基本上都有这个工作,但实现有点不尽如人意。
我有一个查询流
const query = combineTemplate({
checksum,
fields,
filters,
sort,
page
})
我会监听此流上的更改并触发更新我的项目的新查询:
const searches
const items = update([],
[query.changes().map(({checksum}) => checksum).skipDuplicates()], () => [],
[searches], mergeResults
)
那里的校验和是由字段,过滤器和排序生成的,并且基本上告诉我何时需要完全清除当前的结果集。另一个注意事项是无限滚动列表被设置为显示结果集的整个长度,即使并非所有页面都已加载,因此结果集长度需要等于总长度,因此需要额外的页面而不是#39足够了。
正如我所说,我有这个工作,但它似乎非常脆弱,而且很混乱。想知道是否有人管理这种情况的技术,我见过的大多数帖子似乎都假设你将永远收回整个数据集。