Je travaille sur un composant Web de liaison de navigation. L'une des propriétés que je veux définir sur le composant est le titre. Il semble que cela déclenche d'une manière ou d'une autre une erreur maximale de callstack. Dois-je éviter title
du tout? Je pourrais utiliser caption
à la place.La définition du titre en tant qu'attribut sur un composant Web déclenche le callstack maximal.
Première erreur
Class 'NavLinkCmp' incorrectly extends base class 'HTMLElement'. Property 'title' is private in type 'NavLinkCmp' but not in type 'HTMLElement'.
Deuxième erreur
nav-link.cmp.ts:72 Uncaught RangeError: Maximum call stack size exceeded.
at HTMLElement.attributeChangedCallback (nav-link.cmp.ts:72)
navigateur-cmp.ts
<nav-link-cmp href="${link.url}" fa-icon="${link.icon}"
title="${link.title}" description="${link.description}">
</nav-link-cmp>
nav-link-cmp.ts
export class NavLinkCmp extends HTMLElement {
// State
private title: string;
constructor() {
super();
}
connectedCallback() {
this.render();
}
render() {
this.innerHTML = `
<div class="info">
<div class="title">${this.title}</div>
</div>
`;
}
static get observedAttributes() {
return ['title'];
}
attributeChangedCallback(name: string, oldValue: string, newValue: string) {
this.title = newValue
}
}
// Component
require('./nav-link.cmp.scss');
window.customElements.define('nav-link-cmp', NavLinkCmp);
Peut-être que cela supprime le privé? – nlgn
Je devais l'ajouter à cause de la première erreur –