我正在制作一个反应原生组件并使用 Flow 定义属性类型,如下所示:
type Props = {
text: string,
textStyle: object
}
然后将这些属性传递给组件中的 Text 组件。是否有任何针对反应本机的流类型定义,可以让我做这样的事情:
textStyle: TextStyle
现在,Flow 将能够检查 textStyle 值是否仅包含文本组件样式允许的键。
我看到有TypeScript(React.TextStyle)的接口定义,但找不到Flow的任何内容。
更新 3:
当前的最佳实践是:
import type {
ViewStyleProp,
TextStyleProp,
ImageStyleProp,
} from 'react-native/Libraries/StyleSheet/StyleSheet';
更新 2:以下 PR 使事情变得更简单,截至今天,流类型样式如下。
type StyleValue = {[key: string]: Object} | number | false | null;
type StyleProp = StyleValue | Array<StyleValue>;
过时:以下 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';