Я создаю сообщество Lightning, используя LWC, где при успешном входе в систему я пытаюсь перейти на стандартную домашнюю страницу сообщества, но не вижу перенаправления URL-адресов. Ниже приведена логика, которую я написал.

    import { LightningElement } from 'lwc';
    import authenticateLogin from "@salesforce/apex/Login_Controller.authenticateLogin";
    import { NavigationMixin } from 'lightning/navigation';

export default class LoginPage extends NavigationMixin(LightningElement){

        handleLogin(event) {
            var userName= this.template.querySelector(".userName");
            var password = this.template.querySelector(".password");

            authenticateLogin({ userName: userName.value , password : password.value})
                    .then(result => {
                        console.log("Auth success ! ");
                        this[NavigationMixin.Navigate]({
                            type: 'comm__namedPage',
                            attributes: {
                                pageName: 'home'
                            }
                            });
                            console.log("Navigation success ! ");
                    })
                    .catch(error => {
                        this.error = error;
                        console.log("error "+error);

                    })
                    .finally(() => {
                        console.log("finally ");

                    });

        }
    }

В console.log я вижу как "Успех аутентификации!" и "Успех навигации!" приходят, но перенаправление не происходит, я делаю что-то неправильно в этом.

Это справочный документ, которому я следую для достижения этой цели - https: //developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_page_reference_type

2
abey 3 Сен 2019 в 17:08
Можешь показать полный код
 – 
salesforce-sas
3 Сен 2019 в 16:54
@salesforce-sas Привет, я обновил полный код js, дайте мне знать, если вам нужно обновить детали html.
 – 
abey
3 Сен 2019 в 17:08

1 ответ

У меня была точно такая же проблема, и я исправил ее, добавив панель меню навигации на мою страницу входа.

В моем случае мне пришлось сделать собственный макет темы. Для этого я создал компонент ауры, в который я добавил настраиваемую панель навигации (еще один компонент ауры, который мне пришлось создать, потому что мне нужно было переопределить функциональность кнопки «Домой»), добавив следующий div:

<div class="navigation">
    <!-- you add this line here if you want to use the standard nav bar --> 
    {!v.navBar}
    <!-- you add this line if you have a custom nav bar -->
    <c:navMenu></c:navMenu>
</div> 

(Используйте эту документацию в качестве справки: https:/ /developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_config_for_builder_theme_layout.htm)

Результирующий файл .cmp пользовательского компонента макета будет выглядеть примерно так:

<aura:component implements="forceCommunity:themeLayout" access="global" description="Sample Custom Theme Layout">
    <aura:attribute name="navBar" type="Aura.Component[]" required="false"/>
    <aura:attribute name="newHeader" type="Aura.Component[]" required="false"/>
    <div style="outline: none; max-width: 1440px; margin-left: auto; margin-right: auto;">
        <div class="profileMenuRegion">
            {!v.profileMenu}
        </div>
        <div class="newHeader">
            {!v.newHeader}
        </div>
        <div class="navigation">
            <!-- here goes the reference to the custom nav bar component -->
            <c:navMenu></c:navMenu>
        </div>        
        <div class="mainContentArea" style="outline: none; max-width: 1140px; margin-left: auto; margin-right: auto;">
            {!v.body}
        </div>
    </div>
</aura:component>

Я не знаю, нужно ли при использовании стандартной темы явно добавлять на страницу панель навигации.

1
Nadia Recarey 5 Сен 2019 в 20:12
Спасибо, Надя, не могли бы вы рассказать подробнее о том, как добавить строку меню навигации, так как я не смог найти такой опции. Может быть, скриншот будет действительно полезен.
 – 
abey
5 Сен 2019 в 17:15
Я обновил свой ответ более подробной информацией о моем случае. Дайте мне знать, если это все еще не ясно.
 – 
Nadia Recarey
5 Сен 2019 в 20:12
Спасибо Надя, я попробую этот подход и дам вам знать.
 – 
abey
6 Сен 2019 в 09:21