之前我的应用程序位于ReactJs + React-bootstrap
。现在我使用Typescript + ReactJs + React-bootstrap
减少用于生产的应用程序的大小早些时候,我曾经使用以下方法导入react-bootstrap组件:
import Button from 'react-bootstrap/lib/Button'
添加Typescript后,它显示以下错误
[at-loader]中的错误./components/Hello.tsx:6:8 TS1192:模块'' react-bootstrap / lib / Button''没有默认导出。
Trial 1
import {Button} from 'react-bootstrap/lib/Button'
但在这种情况下,Button未定义。
Trial 2
import * as Button from 'react-bootstrap/lib/Button'
但在这种情况下会弹出另一个错误
[at-loader]中的错误./components/Hello.tsx:54:12 TS2604:JSX元素类型' Button'没有任何构造或呼叫签名。
此错误在行<Button onClick={handleClick} bsStyle="danger" bsClass="glyphicon glyphicon-new-window"></Button>
虽然import {Button} from 'react-bootstrap'
工作正常,但这不是理想的,因为它会导致应用程序的大小增加200kbs。
我们如何使用Typescript ??
从react-bootstrap导入特定组件答案 0 :(得分:0)
由于TypeScript符合ESModule规范但lib
正在使用CommonJS,因此您必须使用sam,在切换到TypeScript时使用React导入。
<强> JS 强>
import React from 'react'
import Button from 'react-bootstrap/lib/Button'
<强>打字稿强>
import * as React from 'react'
import * as Button from 'react-bootstrap/lib/Button'
无耻的自我插件:我写了这个here的原因。我想你将来会遇到这个问题:)
这是我使用的版本:
{
"@types/react-bootstrap": "^0.0.47",
"react-bootstrap": "^0.30.8"
}