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.
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:
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.0is failing with the messageTypeError: Cannot read property '__hooks' of undefined. If I install10.2.0explicitly then this error goes away. I assume it is becausehtmhas this version in the devDependencies: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.jsonhas these dependencies:The combination which works is:
Can someone please help me figure this out? Version
10.2.0came more than a year ago and I would like to use the latest version.