manuel
(Manuel Kostka)
1
这已经是很久以前发生过的事情了,并且已经修复了,所以我想这可能是一个回归。已解决状态的下拉过滤器有效(列表已过滤),但下拉菜单不会更新到当前过滤器状态。它始终停留在“所有”上。
这发生在 Discourse 的最新稳定版本上。
我遇到的另一个问题是,我可以使用“已解决”功能限制到标签。但过滤器不会显示在标签列表中。它仅显示在启用了“已解决”功能的类别列表中,或者在所有主题上都启用了该功能时显示。
编辑:我还可以在主题组件 精选列表 中使用过滤器。这曾经有效:
const topicList = await this.store.findFiltered('topicList', {
filter: this.args.list.filter,
params: {
order: 'activity',
category: this.args.list.category,
tags: this.args.list.tag,
solved: this.args.list.solved,
},
但过滤器在该组件上停止工作了。不过没有看到错误。
1 个赞
我不知道为什么,也不知道这是否是核心的更改,但快速调试一下这里
https://github.com/discourse/discourse-solved/blob/main/assets/javascripts/discourse/connectors/bread-crumbs-right/solved-status-filter.js#L47-L51
显示 modelParams 不存在 如果你不在分类页面上。
它在这里定义:
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/routes/build-category-route.js#L71
在主页和分类路由上,以下几种替代方法都有效:
.queryParams.solved
.attributes.list.params.solved
.attributes.list.listParams.solved
我看不到核心中有任何近期更改。 
从我看到的情况来看,modelParams 自此 PR 起就被使用了:
1 个赞
manuel
(Manuel Kostka)
3
感谢您对此事的关注,@Arkshine!关于我的组件,我两个月前才发布它,我敢肯定当时它是有效的 
jancernik
(Jan Cernik)
10
你好 @manuel!感谢你的报告。我无法真正重现你遇到的关于状态过滤器未更新的主要问题,但我已切换到 this.router.currentRoute.queryParams?.solved 来检查状态,这可能会更好用。
由于标签未链接到类别,因此在每个标签中显示过滤器并不总是相关的,但我还是在这里添加了它。
关于你的主题组件,在过滤 solved 时,你应该检查 yes / no 而不是 solved / unsolved。我刚刚就拟议的更改打开了一个 PR。
3 个赞