javascript - Kan inte importera { useActionState } från 'react' enligt next.js-handledningen, next.js v15.0.0-canary.28, react v19.0.0-rc, types/react v18.2.21


Jag följer next.js-handledningen på https://nextjs.org/learn/dashboard-app

Jag har kommit till kapitel 14, förbättra tillgänglighet, på https://nextjs.org/learn/dashboard-app/improving-accessibility

Vid ett tillfälle i handledningen uppmanas jag att import { useActionState } from 'react'; i filen /app/ui/invoices/create-form.tsx.

När jag gör detta får jag felet Module '"react"' har ingen exporterad medlem 'useActionState'.ts(2305)

Jag använder next.js v15.0.0-canary.28, react v19.0.0-rc-6230622a1a-20240610 och types/react v18.2.21. Så vitt jag vet är detta alla de senaste versionerna.

Vet någon vad som kan vara orsaken till felet och hur man rättar till det?

REDIGERA: Det verkar som att det fanns en mer aktuell version av react än npm i @types/react installerade, jag var tvungen att köra npm i @types/[email och nu fungerar det.

Svar #1

Jag stötte på samma problem, och efter att jag körde npm i @types/[email , har jag fortfarande följande fel, är inte säker på om du hade detta och om du vet hur man löser det?

TypeError: (0 , react__WEBPACK_IMPORTED_MODULE_4__.useActionState) is not a function or its return value is not iterable

REDIGERA: Jag körde detta och löste mitt problem npm install --legacy-peer-deps next@rc react@rc react-dom@rc

Svar #2

**

useActionState Hook är för närvarande endast tillgänglig i Reacts Canary- och experimentella kanaler.

**

Denna hook brukade kallas "useFormState", men i den senaste versionen av React Canary har den bytt namn till "useActionState". Det är en av de senaste funktionerna och är naturligtvis experimentell, men du (vi) kör för närvarande React v19 Canary enligt den angivna informationen.

försök en explicit installation av canary, med: npm install react@canary react-dom@canary

React-dokumentationen säger några saker, om du stöter på detta pinsamma fel, vänligen använd useFormState-hooken istället.

Ta 5 sekunder för att konsultera dokumentationen: https://react.dev/reference/react/useActionState

Relaterade artiklar