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"
  ],
}

Relaterte artikler