您可以查看 chat-plugin 如何与侧边栏集成:
在这种情况下,链接的状态保存在服务对象中,并且每当状态更改时,侧边栏都会更新:
一个潜在的解决方案是订阅页面更改事件并更新链接。伪代码可能看起来像:
import { tracked } from "@glimmer/tracking";
api.addSidebarSection(
(BaseCustomSidebarSection, BaseCustomSidebarSectionLink) => {
const TestSectionLink = class extends BaseCustomSidebarSectionLink {
//在此处定义您的自定义链接属性
};
const SidebarTestSection = class extends BaseCustomSidebarSection {
@tracked links = [];
constructor() {
super(...arguments);
this.#updateLinks();
this.onAppEvent("page:changed", () => this.#updateLinks());
}
get newLinksArray() {
//基于当前URL的链接列表
}
#updateLinks() {
this.links = this.newLinksArray.map(
(link) =>
new TestSectionLink({
link,
})
);
}
get sectionLinks() {
return this.links;
}
};
return SidebarTestSection;
}
);