Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Hooks not working correctly using off-the-shelf htm@^3.1.0 and preact@^10.5.14

Ouverte
#209 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
javascript
Domaine
frontend

Piste de recherche

Commencez par reproduire le montage et le démontage du composant fonctionnel avec htm ^3.1.0 et Preact ^10.5.14, en le comparant avec Preact 10.2.0. Vérifiez les versions des dépendances dans htm et application package.json ainsi que les imports preact/hooks indiqués ; c’est terminé lorsque le démontage ne lève plus de __hooks TypeError avec les dernières versions prévues.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

I am using htm and Preact as follows inside a simple functional component. This component is imported by a class component where it is swapped out according to a switching logic with another component. Here is how I am importing the libraries:

import { html } from 'htm/preact';
import { useEffect, useRef, useState } from 'preact/hooks';

I have the latest installed versions of each package. Hooks appear to work fine on first mount, but when the component unmounts, any version of Preact past 10.2.0 is failing with the message TypeError: Cannot read property '__hooks' of undefined. If I install 10.2.0 explicitly then this error goes away. I assume it is because htm has this version in the devDependencies:

  "devDependencies": {
    "@babel/core": "^7.2.2",
    "@babel/preset-env": "^7.1.6",
    "@types/jest": "^26.0.24",
    "babel-jest": "^24.1.0",
    "babel-preset-env": "^1.7.0",
    "eslint": "^5.2.0",
    "eslint-config-developit": "^1.1.1",
    "jest": "^24.1.0",
    "microbundle": "^0.10.1",
    "preact": "^10.2.0",
    "react": "^16.8.3"
  }

I think there is a version mismatch happening but I cannot figure out how to fix it. I tried module resolution but that didn't help. My package.json has these dependencies:

  "dependencies": {
    "htm": "^3.1.0",
    "preact": "^10.5.14",
    "unfetch": "^4.2.0",
    "unistore": "^3.5.2"
  }

The combination which works is:

  "dependencies": {
    "htm": "^3.1.0",
    "preact": "10.2.0",
  }

Can someone please help me figure this out? Version 10.2.0 came more than a year ago and I would like to use the latest version.

Langage dominant
JavaScript
Étoiles
9k
Forks
181
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de developit/htm

Toutes les issues de developit/htm

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.