Как обновить ion-nav новыми данными JS

#javascript #ionic-framework #ionic5

Вопрос:

Я пытаюсь реализовать навигационный компонент, как показано на веб-сайте Ionics. https://ionicframework.com/docs/api/nav

Сценарий, которого я хочу достичь, заключается в том, что пользователь нажимает кнопку «нажмите, чтобы обновить» после нажатия на элемент, он должен вызвать функцию updateList(). Но каждый раз, когда он нажимает, появляется сообщение об ошибке: CustomElementRegistry.define: «nav-home» уже определен как пользовательский элемент»

Все дело в том, что когда эта функция вызывается, будет выполнен вызов ajax (в настоящее время прокомментирован), и будут возвращены новые данные, чтобы затем повторно заполнить компонент nav.

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

Спасибо

Я добавил ссылку JSFiddle ниже, чтобы воспроизвести проблему

https://jsfiddle.net/pilotman/fq8bh347/1/

     function updateList() {
    
    //Ajax will go here instead of above structure and update techs here instead
    
      customElements.define('nav-home', class NavHome extends HTMLElement {
        connectedCallback() {
          this.innerHTML = `
          <ion-header translucent>
            <ion-toolbar>
              <ion-title>Nav</ion-title>
            </ion-toolbar>
          </ion-header>
          <ion-content fullscreen>
            <ion-list>
            ${techs.map(tech => `
                <ion-item button onclick="showDetail('${tech.title}')">
                  <ion-icon slot="start" name="logo-${tech.icon}" style="color: ${tech.color};"></ion-icon>
                  <ion-label>
                    <h3>${tech.title}</h3>
                  </ion-label>
                </ion-item>
            `).join('n')}
            </ion-list>
          </ion-content>
        `;
        }
      });
    }