为什么列表视图按钮的 URLFOR() 函数在沙盒之间的功能不同?

Why does URLFOR() function for a list view button function differently between sandboxes?

我在列表视图按钮中使用 URLFOR() 函数重定向到实现 lightning:isUrlAddressable 接口的闪电组件。作为 URLFOR() 函数的一部分,我在第三个参数中传递了一些 URL 参数,一个是合并字段,另一个是静态字符串值:

{!URLFOR("lightning/cmp/c__MyComponent", null, [id=Related_Object__c.Id,sObjectName="My_SObject_Name__c"])}

这在我们的 DEV 沙箱(API 45.0 版)中工作正常,但相同的配置在我们的 QA 沙箱(API 46.0 版)中不起作用。

在我们的 QA 沙箱中单击列表视图按钮时,我注意到 "id" 和 "sObjectName" 的 URL 参数根本没有被填充。我也通过在 Lightning 组件中记录 PageReference 变量的值来确认这一点。

API 版本之间是否存在任何差异或可能导致此行为的其他问题?

根据 Summer '19 发行说明:

Add a Namespace Prefix to Query Parameters and pageReference.state Properties was a critical update in Winter ’19 and is enforced for the Summer ’19 release. This critical update resolves naming conflicts for query parameters between package components.

这样,上述查询参数至少需要使用默认命名空间"c__":

{!URLFOR("lightning/cmp/c__MyComponent", null, [c__id=Related_Object__c.Id,c__sObjectName="My_SObject_Name__c"])}

文档: https://releasenotes.docs.salesforce.com/en-us/winter19/release-notes/rn_forcecom_general_namespace_prefix_cruc.htm