使用 Navigate 函数的更多方法

已完成

若要在应用中配置导航,除了使用按钮或图标控件的 OnSelect 属性之外,还有许多其他方法。 本单元介绍三种常见方法:窗体控件的 OnSuccess 属性、计时器控件的 OnTimerEnd 属性,以及下拉列表控件的 OnChange 属性。

OnSuccess 导航

为了改善用户体验,在成功提交数据后提供反馈很有用。 Power Apps 提供工具来支持此操作。 例如,如果您将 Success 屏幕插入到应用中,您可以配置导航以仅在成功保存数据时显示该屏幕。

首先,使用“新建屏幕”下拉列表插入 Success 屏幕,然后将其重命名为 Success Screen

接下来,选择您的窗体并查找其 OnSuccess 属性。 为了确保用户仅在成功保存数据时导航到 Success Screen,请使用以下公式:

Navigate(‘Success Screen’, ScreenTransition.Fade)

只有在成功提交窗体后,才会触发此 Navigate 函数。

然后,配置用户返回到上一屏幕的方式。 您可以使用计时器控件,而无需手动交互。

OnTimerEnd 导航

计时器控件可以自动执行转换,例如在短暂显示成功消息后返回到目录或主屏幕。

默认情况下,计时器控件:

  • 在添加到屏幕时可见。

  • 持续时间为 60,000 毫秒(60 秒)。

  • AutoStart 设置为 false。

您可以按如下方式自定义它:

  1. Success Screen 上插入计时器控件。

  2. AutoStart 属性设置为 true

  3. Duration 属性设置为 4000(4 秒)。

  4. OnTimerEnd 属性设置为 Navigate('<yourScreenName>')

  5. Visible 属性设置为 false

通过这些设置,计时器会在屏幕加载时自动开始,并在 4 秒后将用户导航到另一个屏幕。

OnChange 导航

还有一种有效的导航方法,即使用下拉列表控件将菜单添加到您的应用。 您可以在一个屏幕上配置此下拉列表,然后将其复制到应用中的其他屏幕以保持一致性。

下拉列表控件使用 作为其数据源。 在 Items 属性中,可以输入应用的屏幕名称列表,如下所示:

["","Home Screen", "Catalog Screen", "Success Screen"]

此语法表示一个单列表,其中显示值。 它相当于:

Table({Value: ""},{Value: "Home Screen"},{Value: "Catalog Screen"}, {Value: "Success Screen"})

方括号语法是输入表数据的简化方法。

第一个值 "" 是一个空字符串。 您可以将此值设置为控件的 Default 属性,这样就不会预先选择任何选项。

配置 Items 属性后,更新控件的 OnChange 属性以处理导航。

提示

请务必更新 OnChange 属性,而不是 OnSelectOnSelect 属性在单击控件时触发,而 OnChange 在所选值更改时使用。

推荐的方法是结合使用 Switch 函数和 Self 引用来评估所选值并执行导航。 或者,您可以使用 If 语句。 两者都是条件逻辑结构。

例如,在 Contoso Coffee Machines 应用中,您可能针对下拉列表控件的 OnChange 属性使用以下公式:

Switch(Self.SelectedText.Value,
    "Catalog",Navigate('Catalog Screen',ScreenTransition.Cover),
    "Admin",Navigate('Admin Screen',ScreenTransition.Cover)
);
Reset(Self)

此公式计算 Self.SelectedText.Value(下拉列表中的选定项)。 如果值为“Catalog”,该应用将导航到 Catalog Screen。 如果值为“Admin”,它将导航到 Admin Screen

当基于单个输入存在多种可能的结果时,Switch 函数是理想的选择。

最后一行 Reset(Self) 将下拉列表重置为其默认值 (""),这将删除所选内容。

如果您对此还不完全满意,请不要担心。 您将在下一单元的练习中回顾此流程。