Есть ли способ напрямую прочитать параметр из URL-адреса сообщества.

Например, у меня есть пользовательская страница с URL-адресом типа https://abc.com/s/testing? testAttribute=abc и я хочу получить переданный атрибут testingAttribute и передать его потоку, добавленному на этой странице сообщества.

Используя Lightning: isUrlAddressable, я могу установить значение: var pageReference = { type: 'type to do', attribute: { componentName: 'c__helloTarget', }, state: { "c__firstname": "John" } }; component.set("v.pageReference", pageReference);

И получить то же самое в другом компоненте, например `var myPageRef = cmp.get("v.pageReference");

Однако, когда я пытаюсь получить доступ к значениям напрямую, это не работает. На стороне JS я использую следующее:

({
    init : function (component) {

        // Find the component whose aura:id is "flowId"
        var flow = component.find("flowId");
        // In that component, start your flow. Reference the flow's Unique Name.
        flow.startFlow("flowname");
       console.log(component.get("v.pageReference").state.testAttribute);

    },

Получение следующей ошибки при запуске: Файл cookie, связанный с межсайтовым ресурсом по адресу https://2o7.net/, был установлен без SameSite атрибут. Будущая версия Chrome будет доставлять файлы cookie с межсайтовыми запросами только в том случае, если они установлены с помощью SameSite=None и Secure. Вы можете просмотреть файлы cookie в инструментах разработчика в разделе «Приложение»> «Хранилище»> «Файлы cookie» и получить более подробную информацию по адресу https://www. chromestatus.com/feature/5088147346030592 и https://www.chromestatus.com/feature/ 5633521622188032.

2
AvengerSF 16 Мар 2020 в 05:39

1 ответ

Лучший ответ

Вы можете использовать атрибуты времени разработки для привязки параметров строки запроса к вашему компоненту. Определите их в файле .design вашего компонента.

<design:component>
    <design:attribute name="myAttribute" default="{!myAttribute}" description="Automatically bind the url parameter to the component variable" />
</design:component>

Вам понадобится соответствующий атрибут в файле .cmp вашего компонента.

<aura:component implements="forceCommunity:availableForAllPageTypes">
    <aura:attribute name="myAttribute" type="String" access="global" />

    {!v.myAttribute}
</aura:component>

Важно! Вы должны удалить и повторно добавить свой компонент на страницу сообщества, а затем опубликовать сайт, чтобы новые атрибуты вступили в силу.

2
akiradev 19 Мар 2020 в 10:53
Необходимо, чтобы атрибут был помечен как глобальный
 – 
AvengerSF
19 Мар 2020 в 04:45
Спасибо @sdfc-нета. Обновили ответ глобальным модификатором.
 – 
akiradev
19 Мар 2020 в 12:28