审核队列分页/无限滚动在执行操作后

我注意到,在审查队列中处理完某个项目(例如“批准帖子”)后,无法继续滚动(无法通过无限滚动分页加载更多)。至少在我使用“排序方式”为“创建时间”的情况下会出现此问题。

浏览器:Firefox 桌面版
Discourse:2.5.0.beta5

1 个赞

我相当确定我们在过去一年中对这个页面做了大量优化,并修复了加载问题。

如果问题仍然存在,请标记以重新开启。

1 个赞

@markersocial,有什么新细节可以分享吗?听起来这个问题对你们来说依然存在。

如果能提供你们目前使用的具体筛选条件,将对我们尝试复现此问题有所帮助。

2 个赞

好的 :slight_smile:

我在 2.8.0beta4 上再次测试了这个问题,使用默认排序(按分数)时仍然会出现。根据我之前的测试,我认为其他排序选项也存在同样的问题。

复现步骤:只需在审核队列中至少有 11 个项目。如果你处理了列表顶部的任意项目(批准/拒绝等),之后将无法向下滚动并分页到列表的最后一项。必须刷新整个列表才能再次进行分页。

2 个赞

完美,感谢提供详细信息!@sam,我可以复现这个问题。正如 @markersocial 所建议的,复现很简单:至少标记 11 篇帖子,打开审核队列,处理第一个标记,然后向下滚动。

3 个赞

首先说明一下,我对 Ember 并不熟悉,因此文中可能会出现用词不当的地方。

在解析一个 reviewable 后,会通过调用 reject 将其从当前的 reviewables 列表中移除:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/controllers/review-index.js#L107

reject 返回一个数组。当 reviewables 变量被设置为新的 newList 数组时(第 114 行),包含 loadMore() 等额外方法的类被替换为了一个基本数组。(编辑:这就是为什么在解析项目之前加载功能正常,但解析之后却无法正常工作。)

一个可能的修复方案是将 this.set("reviewables", newList); 替换为 this.reviewables.set("content", newList);

3 个赞

这已在此处修复 :arrow_down:

5 个赞