简介
用户在浏览 Grafana 时的上下文可能会发生巨大变化,有时他们的面包屑与他们的历史记录不匹配。在这种情况下,用户不能轻易地返回,可能会对他们的体验感到沮丧。本指南定义了“上下文”并展示了您如何通过最小编码将“返回到上一个”功能添加到您的插件中,以解决这个问题。
Grafana 中的上下文
在 Grafana 插件开发的范围内,术语“上下文”指的是用户从一个根 URL 到另一个根 URL 的路径上的位置。请注意,在 Grafana 中,这个术语还可能与其他 Grafana 功能(如 Explore 或 Dashboards)相关联。
使用面包屑来注意用户上下文的变化。例如
-
您是否从 主页 > 仪表板 跳转到 主页 > 探索?那么您已经改变了您所在的上下文。
-
您是否从 主页 > 仪表板 > 播放列表 > 编辑播放列表 跳转到 主页 > 仪表板 > 报告 > 设置?那么您现在所在的上下文与之前相同。
如您所见,关键在于URL从根级别的变化。因为“探索”和“仪表板”都在根级别,用户的上下文发生了变化。但是,用户路径到“报告设置”并非如此。
添加功能以允许用户返回到他们之前的状态
-
选择一个交互式元素,如链接或按钮,以触发
ReturnToPrevious
功能。此元素将引导用户到Grafana中的另一个上下文。例如,警报规则的“转到仪表板”按钮。 -
要设置所需值,您可以使用来自
@grafana/runtime
的useReturnToPrevious
钩子
- 指定要在按钮中显示的
标题
。 - (可选)传递第二个参数以设置不同的
href
。
例如
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
事件的链接或交互式元素触发“返回上一页”功能。 - 仅在用户被发送到另一个上下文(例如,从警报到仪表板)时使用“返回上一页”功能。
- 指定一个按钮标题,以最清晰的方式标识要返回的页面。
不要这样做
- 不要通过链接或按钮之外的元素触发“返回上一页”功能。
- 在同一个上下文中从一个页面跳转到另一个页面时不要使用此功能。
- 不要使用“返回到上一页”等文本。要具体。