【发布时间】:2018-11-21 14:29:03
【问题描述】:
我正在尝试使用 TypeScript 在 React (^16.6.0) 应用程序中实现挂钩
import * as React, {useState} from 'react';
知道这个导入的正确语法是什么吗?
【问题讨论】:
标签: reactjs react-hooks
我正在尝试使用 TypeScript 在 React (^16.6.0) 应用程序中实现挂钩
import * as React, {useState} from 'react';
知道这个导入的正确语法是什么吗?
【问题讨论】:
标签: reactjs react-hooks
import 支持一组有限的语法变体。
可以是:
import React, {useState} from 'react';
缺点是整个库都被导入了,因为React 是默认导出,不能进行树形抖动。由于使用 JSX 语法需要 React import 的存在,所以更高效的方式是:
import * as React from 'react';
import {useState} from 'react';
Hooks were introduced in pre-release React 16.7。 react 版本约束应该是^16.7.0-alpha.0,@types/react 应该是^16.7.0。
【讨论】:
npm i @types/react@latest再试一次
我在"@types/react": "^16.8.17" 上遇到了同样的错误。查看它的类型 def 文件,它由于某种原因缺少 useState 函数,尽管它在 useReducer 等其他钩子的 cmets 中被提及。
用npm i @types/react@latest 升级到"@types/react": "^16.8.18" 修复了它。
【讨论】: