React Native项目中有很多Flow错误

时间:2017-04-01 05:29:10

标签: react-native flowtype expo

我从Expo创建了一个React Native项目。然后我想添加Flow。我注意到在我的node_modules/react-native文件夹中有一个.flowconfig,所以我将其复制到我的项目的根目录。运行flow后,我从node_modules/exponent中的文件收到了一些警告,因此我为整个文件夹添加了一个忽略。之后,我在运行flow时仍会遇到很多错误。以下是一些:

node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:227
227:   /* $FlowFixMe */
       ^^^^^^^^^^^^^^^^ Error suppressing comment. Unused suppression

node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:1120
1120:     if (__DEV__) {
              ^^^^^^^ identifier `__DEV__`. Could not resolve name

node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:2162
2162:     if (__DEV__) {
              ^^^^^^^ identifier `__DEV__`. Could not resolve name
  • Expo SDK版本:14.0.0
  • Flow版本:0.37.0
  • React Native version:0.41.2

3 个答案:

答案 0 :(得分:2)

您可以在[options]部分的 .flowconfig 文件中取消错误,如下所示:

[options]
suppress_type=$FlowFixMe

suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-8]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)

然后,在[libs]部分中,您应该指出所谓的库定义文件,例如:

[libs]
./libdefs.js

libdefs.js 中只需声明:

declare var __DEV__:string;

这些更改应解决您的错误。参见:

https://flow.org/en/docs/config/options/#toc-suppress-comment-regex

https://flow.org/en/docs/libdefs/creation/了解详情。

答案 1 :(得分:0)

看起来它可能是对该发行版本的流类型的疏忽。

所有这些错误看起来都是无害的,所以你可以忽略它。如果您绝对无法忽略它,请更新到更高版本的React Native,该版本已锁定到不同版本的Flow?我使用React Native @ 0.42和Flow @ 0.38亲自(没有错误)获得了良好的结果。

答案 2 :(得分:0)

找到此issue,建议更新flowconfig以使用latest version from create-react-native-app。似乎对我有用。