Estou tentando testar novos recursos do React 19.
Para fazer isso, criei um aplicativo React com Vite e TypeScript:
npm create vite@latest
Em seguida, atualizei para as bibliotecas React 19 ( de acordo com este artigo ):
npm install --save-exact react@rc react-dom@rc
Depois disso, posso ver a versão atualizada do React em package.json:
"dependencies": {
"react": "19.0.0-rc-d8c90fa4-20241001",
"react-dom": "19.0.0-rc-d8c90fa4-20241001"
}
Agora quero testar novos recursos do React 19, um dos quais é o novo hook use
, mas quando tento:
import { use } from 'react'
Recebo um erro de que não foi exportado de react
:
O módulo "react" não possui nenhum membro exportado 'use'
Obviamente, agora completei corretamente a "migração" para React 19 - o que eu perdi? Como fazer funcionar?
Também suspeito que esse recurso possa ser específico dos React Server Components.
O que
@types/react
você está usando ainda não tem esse nome, então o TypeScript está confuso.Você pode tentar um arquivo de aumento de módulo local (por exemplo
src/react-19.d.ts
):Como pode ser lido no problema do GitHub
Então, na página do React npm encontrei a versão mais recente do Canary:
19.0.0-canary-cb151849e1-20240424
e a instalei parareact
ereact-dom
.Agora, tudo parece estar funcionando com
use
o hook, porém o erro permanece.na verdade você não pode usar o
use
dentro de um projeto typescript, porque o react.d.ts não tem ouse
membro.Use um projeto js e ele funcionará conforme o esperado.
Eu configurei um projeto muito rápido para usar o React 19 se você quiser o React 19