reactjs - Importer med Jotai og create react app feiler
Jeg prøver å bruke jotai-react-query-biblioteket, og derfor ønsker jeg å utnytte
import {useHydrateAtoms} from "jotai/react/utils/useHydrateAtoms";
Men når jeg bygger en test med jest, kan den ikke finne importen. For å verifisere, opprettet jeg en tom app med:
npx create-react-app jest-example --template typescript
og la til jotai
npm add jotai
og så la til importen i App.tsx
import {useHydrateAtoms} from "jotai/react/utils/useHydrateAtoms";
pluss en linje for å bruke den:
const y = useHydrateAtoms([])
og det samme som mitt prosjekt, importen mislykkes:
Cannot find module 'jotai/react/utils/useHydrateAtoms' from 'src/App.test.tsx'
Jeg har prøvd å tukle med noen jest-alternativer i package.json, men jeg har ikke funnet en kombinasjon som gjør en forskjell.
Svar #1
Du importerer det ikke riktig. Selv om typedefinisjonen for useHydrateAtoms kommer fra filen jotai/react/utils/useHydrateAtoms.d.ts, finnes det ingen fil som jotai/react/utils/useHydrateAtoms.js i pakken.
I stedet er useHydrateAtoms definert i filen jotai/react/utils.js. Typedefinisjonen for filen utils.js kommer fra filen utils.d.ts, som importerer typedefinisjoner fra jotai/react/utils/*.d.ts.
Så, importen som du bør bruke er -
import { useHydrateAtoms } from "jotai/react/utils";
Svar #2
Jeg er ikke sikker på om dette vil løse problemet ditt, men det høres ut som (hvis du ikke allerede har gjort det) må banen til node-modulene dine settes opp for jest.
"jest": {
"moduleDirectories": [
"node_modules"
],
}
