简介
用户在浏览 Grafana 时,其上下文可能会发生巨大变化,有时它们的导航路径与历史记录不匹配。在这些情况下,用户无法轻松返回,并可能对他们的体验感到沮丧。本指南定义了上下文,并展示了如何将ReturnToPrevious
功能添加到你的插件中,以通过最少的代码解决此问题。
Grafana 中的上下文
在 Grafana 插件开发中,上下文指的是用户从一个根 URL 到另一个根 URL 的路径上的位置。请注意,在 Grafana 中,此术语也可能用于连接其他 Grafana 功能,例如探索或仪表板。
使用导航路径来注意到用户上下文的变化。例如
-
你是否从主页 > 仪表板转到了主页 > 探索?那么你改变了所在的上下文。
-
你是否从主页 > 仪表板 > 播放列表 > 编辑播放列表转到了主页 > 仪表板 > 报告 > 设置?那么你仍然处于与之前相同的上下文。
如你所见,关键是 URL 从根级别开始的更改。由于探索和仪表板都处于根级别,因此用户的上下文发生了变化。但是,用户到报告设置的路径并非如此。
添加功能以允许用户返回其之前的上下文
-
选择一个交互式项目,例如链接或按钮,以触发
ReturnToPrevious
功能。此元素将引导用户进入 Grafana 中的另一个上下文。例如,警报规则的“转到仪表板”按钮。 -
要设置所需的值,可以使用
@grafana/runtime
中的useReturnToPrevious
钩子
- 指定要在按钮中显示的
title
。 - (可选)传递第二个参数以设置
href
(如果它与当前 URL 不同)。
例如
import { config, useReturnToPrevious } from '@grafana/runtime';
const setReturnToPrevious = useReturnToPrevious();
[...]
<LinkButton
size="sm"
key="dashboard"
variant="primary"
icon="apps"
href={`d/${encodeURIComponent(dashboardUID)}`}
onClick={() => {
setReturnToPrevious(rule.name);
}}
>
Go to dashboard
</LinkButton>
- 验证它是否按预期工作。当你在通过该交互式元素从你的应用程序插件转到 Grafana 的另一个区域时,应出现“返回上一步”按钮。
使用指南
这样做
- 通过具有
onClick
事件的链接或交互式元素来触发“ReturnToPrevious”功能。 - 仅在用户被发送到另一个上下文时才使用“ReturnToPrevious”功能,例如从警报到仪表板。
- 指定一个按钮标题,该标题以最容易理解的方式标识要返回的页面。
不要这样做
- 不要通过链接或按钮以外的元素触发“ReturnToPrevious”功能。
- 在同一个上下文中从一个页面转到另一个页面时,不要使用此功能。
- 不要使用诸如“返回上一页”之类的文本。请具体说明。