Я использую функцию URLFOR() в кнопке просмотра списка для перенаправления на компонент молнии, который реализует интерфейс молнии: 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 я замечаю, что параметры URL вообще не заполняются для «id» и «sObjectName». Я подтвердил это, также зарегистрировав значение переменной PageReference в компоненте Lightning.
Существуют ли какие-либо различия между версиями 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