将钩子导入 React Typescript

Ale*_*opa 6 reactjs react-hooks

我正在尝试使用 TypeScript 在 React (^16.6.0) 应用程序中实现钩子

import * as React, {useState}  from 'react';
Run Code Online (Sandbox Code Playgroud)

知道此导入的正确语法是什么吗?

Est*_*ask 11

import 支持一组有限的语法变体。

有可能:

import React, {useState}  from 'react';
Run Code Online (Sandbox Code Playgroud)

缺点是整个库都是导入的,因为React是默认导出,不能摇树。由于React使用 JSX 语法需要 import的存在,因此更有效的方法是:

import * as React from 'react';
import {useState}  from 'react';
Run Code Online (Sandbox Code Playgroud)

钩子是在预发布的 React 16.7 中引入的react版本约束应该是^16.7.0-alpha.0@types/react应该是^16.7.0

  • 应该是因为“@types/react”中的版本还没有更新。请 `npm i @types/react@latest` 并重试 (3认同)

rat*_*ard 11

我在 上也有同样的错误"@types/react": "^16.8.17"。查看它的类型 def 文件,useState由于某种原因它缺少该函数,尽管在其他钩子(如useReducer.

升级到"@types/react": "^16.8.18"修复npm i @types/react@latest它。