Navigation — Modals, Default Values & Quick Actions

DEX475 - Lightning App Builder

📄 第 366 页 🎬 视频课程

课程章节介绍

好,同学们,咱们来看看这个 Slide,它讲了几个非常实用的导航和传参技巧。 我会用最直白的方式,把这些点一个个串起来,你听完就能在脑子里形成清晰的画面。 先说,模式导航,。 你要打开一个模态窗口,不能在一个组件里蛮干,需要三个角色配合: 子组件负责“点火”——它通过自定义事件把要去的页面引用(pageRef)作为事件详情抛出去,自己不直接导航。 然后中间有个模式容器,它就像一个信使,负责把这个事件原封不动地转发出去,保持数据干净。 最后是父组件,它在那里稳稳接住事件,调用 `NavigationMixin.Navigate` 来真正执行导航。这样分工下来,组件各自职责单一,代码清爽又好维护。 接下来是,默认字段值,。 我们新建记录时,经常想预填一些字段,比如把联系人的姓名先写上。这时候要用 `encodeDefaultFieldValues` 这个方法。 你传一个普通对象,比如 { LastName: '张三', IsActive: true },它会帮你编码成一个加密的字符串。你在导航时,把这个字符串塞到 `state.defaultFieldValues` 里,目标页面就能拿到。 如果是做操作覆盖,比如你覆盖了标准的“新建”按钮,这时候页面上下文里已经有一个 `currentPageReference`。你需要用 `decodeDefaultFieldValues` 从这个引用里把编码字符串解码回来。 ,注意,,解码出来的所有值都是字符串形态,布尔值会变成 `'true'` 或 `'false'`,必须你自己显式地把它转成布尔,否则你的复选框可能不听使唤。 再讲,快速动作的两种模式,,这个记起来很简单。 一种是“无头模式”,就是它的 HTML 模板是空的,只跑 JS 逻辑,然后立刻调用导航去另一个地方,用户看不到界面,只是后台跳一下。 另一种是“屏幕模式”,会弹出我们熟悉的模态框,堆叠行为可以通过一个替换参数来控制——比如你想让新窗口替换当前窗口,只留一个,那就要用到这个参数。 最后是这个 slide 提到的,文件预览导航,,特别实用。 我们使用标准的 `__namedPage`,把 `pageName` 写成 `'filePreview'`,就能进入 Salesforce 的文件预览界面。它可以传一个 `recordId` 数组,让你一次预览多个文件;如果你想让打开时默认选中某一个文件,就加上 `selectedRecordId`。这样用户体验会很流畅。 好了,这些就是模式导航、默认值、快速动作和文件预览的核心点。记住三个组件配合的模式,编码解码时注意类型,你就能把导航玩得很溜。有什么问题随时提,我们接着聊。

关键词

LWC Lightning Web Components Salesforce