[halo-dev/halo]附件管理列表扩展按钮希望传入queryClient或列表刷新方法,以在解除s3关联后能自动刷新列表

2024-03-25 886 views
4
你当前使用的版本

2.10

描述一下此特性

目前提供的附件管理列表扩展点只能实现到解除关联,解除关联后无法自动刷新列表。 而 console 附件删除需要调用selectedAttachments和queryClient,在扩展按钮中无法调用。 https://github.com/halo-dev/halo/blob/4ea20142f5b03c7e6515975670f729061659160f/console/src/modules/contents/attachments/components/AttachmentListItem.vue#L61-L86

不知道有什么更好的方法能解决这个问题。

回答

5

目前我在插件中的做法是:

在插件安装 TanStack Query 的依赖:

pnpm install @tanstack/vue-query@4.29.1

组件中:

const queryClient = useQueryClient();

queryClient.invalidateQueries({ queryKey: ["attachments"] }); 

这个问题好像更可以体现使用了 TanStack Query 的优势,可以在任何地方利用 Query Client 清理任何地方的状态缓存,虽然有点黑盒,但很好用。

7

这样使用会报错,导致按钮无法加载。 有没有开源的插件的案例呢? image image

0

应该把 const queryClient = useQueryClient() 放在 unlink 方法里,控制台的第一个错误就是原因。

1

还是会有错误,因为这个方法是作为action调用的,并不在setup。 image image image

7

不如直接包一个自己的VDropdownItem按钮组件,就可以有setup了,方案可以吗

2

可以。

3

呃呃呃,这办法虽然有setup了,但是就没办法获取当前附件信息了。

7

放在 props 里给组件。