我正在创建一个react本机组件并使用Flow来定义属性类型,如下所示:
type Props = { text: string, textStyle: object }
然后将这些属性传递给组件内的Text组件.是否有反应原生的任何Flow类型定义,这将允许我做这样的事情:
textStyle: TextStyle
现在,Flow可以检查textStyle值是否仅包含Text组件样式允许的键.
我看到有TypeScript(React.TextStyle)的接口定义,但找不到Flow的任何内容.
更新3:
目前的最佳做法是:
import type { ViewStyleProp, TextStyleProp, ImageStyleProp, } from 'react-native/Libraries/StyleSheet/StyleSheet';
更新2:以下PR使事情更简单,因为今天的flowtype样式如下.
type StyleValue = {[key: string]: Object} | number | false | null; type StyleProp = StyleValue | Array;
过时:在下面的PR修复它,可以从v0.52.0被发现
可以执行以下操作:
// @flow import type { StyleObj } from 'react-native/Libraries/StyleSheet/StyleSheetTypes'; type Props = { style?: StyleObj };
以下讨论:https://github.com/flowtype/flow-typed/issues/631#issuecomment-282009393
更新
StyleObj
不再是StyleSheetTypes的一部分.
现在导入:
{LayoutStyle, TransformStyle, ShadowStyle, ViewStyle, TextStyle, ImageStyle, DangerouslyImpreciseStyle} from 'react-native/Libraries/StyleSheet/StyleSheetTypes';
在您的情况下,您应该:
import { TextStyle } from 'react-native/Libraries/StyleSheet/StyleSheetTypes';