本篇参考:
Salesforce LWC学习(七) Navigation & Toast
https://developer.salesforce.com/docs/platform/lwc/guide/use-navigate-url-addressable.html
以前我们做开发时,如果lwc实现跳转,只能跳转到aura component,现在lwc已经支持lwc跳转到lwc了。这里做一个简单例子。
navigateLwcDemo.html
<template>
<lightning-button label="navigate" onclick={navigateToComponent}></lightning-button>
</template>
navigateLwcDemo.js:使用NavigateMixin,代码跳转到 targetLwcDemo这个lwc并且传递参数 propertyValue。
import { LightningElement } from 'lwc';
import { NavigationMixin } from "lightning/navigation";
export default class NavigateLwcDemo extends NavigationMixin(LightningElement) {
navigateToComponent() {
this[NavigationMixin.Navigate]({
// Pass in pageReference
type: "standard__component",
attributes: {
componentName: "c__targetLwcDemo",
},
state: {
c__propertyValue: "test"
},
});
}
}
targetLwcDemo.html
<template>
property value : {propertyValue}
</template>
targetLwcDemo.js:通过 CurrentPageReference来获取属性信息
import { LightningElement,wire } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
export default class TargetLwcDemo extends LightningElement {
@wire(CurrentPageReference)
currentPageRef;
get propertyValue() {
return this.currentPageRef.state.c__propertyValue;
}
}
targetLwcDemo.js-meta.xml:target使用lightning__UrlAddressable
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>61.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__UrlAddressable</target>
</targets>
</LightningComponentBundle>
结果: 当点击Navigate按钮以后,链接会跳转到: /lightning/cmp/c__targetLwcDemo?c__propertyValue=test,页面会显示property value: test
以下链接是免费的Data Cloud的学习资源:https://quip.com/A01IA0NAGFXd
我们举一个场景,我们在Opportunity的Layout上想要展示Account的字段,如何操作呢? 我们的常见的做法可能就是在Opportunity表中创建formula字段用来显示Account信息。随着新的release,dynamic form已经支持跨object展示信息,但是只支持获取父object的信息,不支持兄弟关系,比如Opportunity上显示Account的Contact的内容是做不到的。
注:使用此feature需要启用Dynamic Form,关联object的字段只能只读类型,无法做到编辑。
以前的release,dynamic form只支持Field Section,dynamic form和layout的区别是dynamic form不支持blank space,举个例子:Primary Campaign Source想要和Primary同一个行,就只能在Primary Campaign Source上面增加一个字段,将这个字段挤下去从而才可以实现。但是实际需求中,每个字段的放置有要求,并不一定有需要新的字段放置在这里。
新的release以后,dynamic form就可以增加 blank space快速实现了,这个是一个很好的增强。
我们在项目中,可能会有需要设置 Field History Tracking的需求,我们如何能快速的知道当前的表是否可以对字段进行track history呢?我们只能点击Set History Tracking按钮,然后点击某个需要track的字段,然后点击save才能知道是否需要报错。如下方gif所示,需要对Account的字段进行track,只能勾选然后点击Save才能知道已经满了,那么有没有一种方式可以直观的显示呢。
随着新的release,这个功能终于成为了可能。
总结: 篇中简单介绍了几个项目中以及学习中用到的零碎知识点,需要注意的是,好多功能都是最新的release,目前好多都是在preview状态,production或者dev edition有可能还没有启用,所以在完全release以后再去进行尝试或者去sandbox中尝试。
篇中有错误地方欢迎指出,有不懂欢迎留言。