`showOpLikes` 不会立即生效,需来回点击后才起作用

你好。我希望在主页面显示原始帖子的点赞数。我遵循了这篇帖子中的说明:Display Like Counts on Home Page Topic List - #6 by vinothkannans

我添加了以下代码,并启用了 showOpLikes,但遇到了一些问题。不知为何,它无法立即显示原始帖子的点赞数。只有在我点击“按点赞排序”,然后再切换回“最新”(取消排序)之后,才会显示。

有趣的是,showLikes 并没有这个问题。

<script>
var TopicListComponent = require('discourse/components/topic-list').default;
TopicListComponent.reopen({
    showOpLikes: true
});
</script>

以下是点击“按点赞排序”并切换回“最新”之前的截图:


以下是操作之后的截图:

我认为 showOpLikes 应该仅在按 OP 点赞数排序时生效,例如访问类似 https://meta.discourse.org/latest?order=op_likes 的 URL。否则,op_like_count 不会被包含(showLikes 应该可以工作……但那是整个主题的点赞总数)。你可以通过查看 https://meta.discourse.org/latest.jsonhttps://meta.discourse.org/latest.json?order=op_likes 来验证这一点:op_like_count 仅在第二个链接中可用。

不过,这背后有什么逻辑吗?还是说这是个 bug?

这是有意为之的,但我不确定具体原因。我怀疑这是为了避免在每次页面加载时都携带这些数据。

此外,我们通常认为,主题内的总点赞数比仅由原帖(OP)决定的指标更能衡量讨论质量。

嗯,我想这取决于社区的目标。我们的帖子代表数学问题和习题,所以我们希望看到点赞数最高的内容,但我不确定是否应该将答案获得的点赞也计算在内。嗯,我不太确定。

我认为你需要添加一些 JavaScript 代码,将 OP 的点赞信息加入序列化器。如果你搜索“add to serializer”(可能不需要空格),应该能找到一些示例。

好的,我已经把它改回 showLikes 了,不过还是谢谢你的建议,我稍后可能会试试。