【发布时间】:2021-12-31 15:55:49
【问题描述】:
我正在为我的 react 项目设置流静态类型检查(对它来说很新)。我还安装了 react UI 库,React-Bootstrap。
这是我当前的设置:
.flowconfig
[ignore]
.*/build/.*
.*/node_modules/.*
.*/node_modules/npm.*
.*/node_modules/.*/node_modules/.*
.*\.test\.js
[include]
./src
[libs]
[lints]
[options]
react.runtime=automatic
[strict]
App.js
//@flow
import React, { useState } from 'react';
import Container from 'react-bootstrap/Container';
import Button from 'react-bootstrap/Button';
import Alert from 'react-bootstrap/Alert';
import type { Node } from 'react';
const AlertDismissibleExample = (): Node => {
const [show, setShow] = useState(false);
if (show) {
return (
<Alert variant="danger" onClose={() => setShow(false)} dismissible>
<Alert.Heading>
I am an alert of type <span className="dangerText">danger</span>! But
my color is Teal!
</Alert.Heading>
<p>
By the way the button you just clicked is an{' '}
<span className="infoText">Info</span> button but is using the color
Tomato. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Accusantium debitis deleniti distinctio impedit officia reprehenderit
suscipit voluptatibus. Earum, nam necessitatibus!
</p>
</Alert>
);
}
return (
<Button variant="info" onClick={() => setShow(true)}>
Show Custom Styled Alert
</Button>
);
}
const App = () => (
<Container className="p-3">
<Container className="pb-1 p-5 mb-4 bg-light rounded-3">
<h1 className="header">Welcome To React-Bootstrap</h1>
<AlertDismissibleExample />
</Container>
</Container>
);
export default App;
我的代码有 2 个与流程相关的问题:
问题 1. 当我尝试将所需的 react-bootstrap 模块导入我的 .js 文件时,流程抛出错误:
以下是我在 App.js 文件中导入的 react-bootstrap 模块收到的错误:
Cannot resolve module `react-bootstrap/Container`.Flow(cannot-resolve-module)
Cannot resolve module `react-bootstrap/Button`.Flow(cannot-resolve-module)
还有更多...
问题 2. 'import type' 声明只能在 TypeScript 文件中使用。
import type { Node } from 'react'; 语句会引发此错误。我无法为我的功能组件使用流类型。我有所有正确的 VS-CODE 设置来启用 .js 文件的类型检查:
我试图四处寻找问题,但是对于使用流程的新手,我有点卡住了。任何解决相同问题的帮助(有一些理由),将不胜感激。
提前致谢!
【问题讨论】:
标签: javascript reactjs flowtype typechecking