创建一个link,带参数,访问salesforce lightning component. 怎么破?

如题,最近接到一个这样的需求。

原本通过lightning tab的link是长这个样子的:

/lightning/n/[myLightningComponentName]?0.source=alohaHeader

在它尾巴上加param后,重新访问,页面刷新后发现link上的参数已经无影无踪...

经过一番网上搜索,发现lightning 有“isUrlAddressable”这个特性。随后我做了一些探索后找到问题答案。如下:

1. lightning component需添加 “isUrlAddressable”

<aura:component implements="lightning:isUrlAddressable" controller="xxx"> ...

2. 这个component可通过这样的link访问:

/lightning/cmp/c__myLightningComponentAPIName?c__someParamName=xxxxx

注意:这里需要加上“c__"前缀, 参数前也要加,不加你拿不到,就是这么任性!(这是我掉进去的坑之一。 另我猜测,如果使用的lightning component有其他命名空间,”c__"需替换成相应的命名空间,未验证)。

补充,myLightningComponentAPIName这里是aura component的api name, 我再次试验的时候误填了对应的lightning component tab的api name,也不行。

3. 在lightning component的controller.js中,可以通过下列方法获取参数 (注意,这里同样参数需加"c__"前缀!不加拿不到,嘿嘿):

var myPageRef = component.get("v.pageReference");
var myWantedParamValue = myPageRef.state.c__someParamName;

OK 至此可通过link访问到lightning component 并愉快地获得参数 :)

 

补充-20210611: 今天发现,这货只能传一个参数,它妈的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值