Correction du bug TS2339 - La méthode de propriété n'existe pas sur 'HTMLElement'
P粉481815897
P粉481815897 2023-12-25 22:52:23
0
1
674

Lorsque j'appuie sur le bouton "Suivant", le code ci-dessous se déclenche, effectuant l'action requise (faire défiler jusqu'à mon élément si nécessaire).

Mais j'obtiens cette erreur : Doesn't exist on 错误TS2339:属性'scrollIntoViewIfNeeded'在类型'HTMLElement'. et je n'arrive pas à construire mon projet.

const h3Title = ref<HTMLElement | null>(null)
function nextStep(
  currentStep.value++;
  
  if (h3Title.value) {
    h3Title.value.scrollIntoViewIfNeeded({behavior: "smooth", block: "start"})
  }

P粉481815897
P粉481815897

répondre à tous(1)
P粉958986070

Je pense que h3Title.value.scrollIntoView({block: "nearest"}) l'utilisation de la propriété scrollIntoView standard permettra d'obtenir ce que vous voulez (pas de défilement si l'élément est déjà visible).

Si vous voulez vraiment que TypeScript reconnaisse la propriété scrollIntoViewIfNeeded non standard, vous pouvez l'ajouter à l'interface HTMLElement (ou créer une nouvelle interface qui étend HTMLElement) :

// global.d.ts
interface HTMLElement {
  scrollIntoViewIfNeeded?: any;
}

ou : changer h3Title.value 转换为 anytype

(h3Title.value as any).scrollIntoViewIfNeeded()
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal