Passing Default Values to Navigation Service

DEX602 - Unit 2 Introducing Lightning Web Components

📄 第 192 页 🎬 视频课程

课程章节介绍

让我们一步一步来理解如何在Salesforce中使用导航服务,并传递默认值。 首先,我们需要导入必要的模块。在你的代码顶部,确保你已经导入了`lightning/navigation`模块,因为我们将使用它来进行页面导航。同时,我们还需要导入`encodeDefaultFieldValues`函数,这个函数帮助我们编码默认字段值,以便在导航时传递。 ```javascript import { NavigationMixin } from 'lightning/navigation'; import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils'; ``` 接下来,我们需要确保我们的组件使用了`NavigationMixin`。这个Mixin为我们的组件提供了导航功能。你可以在组件的类定义中使用它: ```javascript export default class YourComponent extends NavigationMixin(LightningElement) { // 你的组件代码 } ``` 现在,假设我们有一个场景,我们需要导航到一个新的“课程交付”记录页面,并且我们希望在打开页面时,某些字段已经预先填充了默认值。我们可以这样做: ```javascript let pageInfo = { type: 'standard__objectPage', attributes: { objectApiName: 'Course_Delivery__c', actionName: 'new' }, state: { defaultFieldValues: encodeDefaultFieldValues({ Instructor__c: this.selectedInstructorId }) } }; this[NavigationMixin.Navigate](pageInfo); ``` 在这段代码中,我们创建了一个`pageInfo`对象,它描述了我们要导航到的页面类型和属性。`type`设置为`standard__objectPage`,表示我们要导航到一个标准对象页面。`attributes`对象中,我们指定了对象API名称`Course_Delivery__c`和动作名称`new`,表示我们要创建一个新的记录。 在`state`对象中,我们使用了`encodeDefaultFieldValues`函数来编码默认字段值。这里,我们传递了一个对象,其中键是字段的API名称,值是我们希望设置的默认值。在这个例子中,`Instructor__c`字段将被设置为`this.selectedInstructorId`的值。 最后,我们调用`this[NavigationMixin.Navigate](pageInfo);`来执行导航操作。这将打开一个新的“课程交付”记录页面,并且`Instructor__c`字段将自动填充为`this.selectedInstructorId`的值。 总结一下,使用导航服务并传递默认值的步骤是: 1. 导入必要的模块。 2. 应用`NavigationMixin`到你的组件。 3. 创建`pageInfo`对象来描述导航目标。 4. 使用`encodeDefaultFieldValues`来编码默认字段值。 5. 调用`this[NavigationMixin.Navigate](pageInfo);`来执行导航。 希望这个解释对你有帮助!如果有任何疑问,随时问我。