将钩子导入React Typescript

时间:2018-11-21 14:29:04

标签: reactjs react-hooks

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

import * as React, {useState}  from 'react';

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

2 个答案:

答案 0 :(得分:0)

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

可以是:

import React, {useState}  from 'react';

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

import * as React from 'react';
import {useState}  from 'react';

Hooks were introduced in pre-release React 16.7react版本约束应为^16.7.0-alpha.0@types/react应为^16.7.0

答案 1 :(得分:0)

我在useState上遇到了相同的错误。看着它的类型def文件,由于某种原因,它缺少了useReducer函数,尽管它在诸如"@types/react": "^16.8.18"之类的其他钩子的注释中被提及。

使用npm i @types/react@latest修复了升级到d = {'@index': '40', 'row': [{'column': [{'text': {'@fontName': 'Times New Roman', '@fontSize': '12.0', '@x': '85.10', '@y': '663.12', '@width': '250.01', '@height': '12.00', '#text': 'text 1'}}]}, {'column': [{'text': {'@fontName': 'Times New Roman', '@fontSize': '8.0', '@x': '121.10', '@y': '675.36', '@width': '348.98', '@height': '8.04', '#text': 'text 2'}}, {'text': {'@fontName': 'Times New Roman', '@fontSize': '12.0', '@x': '473.30', '@y': '676.92', '@width': '42.47', '@height': '12.00', '#text': 'text 3'}}]}, {'column': [{'text': {'@fontName': 'Times New Roman', '@fontSize': '12.0', '@x': '85.10', '@y': '690.72', '@width': '433.61', '@height': '12.00', '#text': 'text 4'}}]}]} new_d = {**d, 'row':[c['text'] for b in d['row'] for c in b['column']]} 的问题。