react-native样式是否有任何流类型定义?

时间:2017-01-21 13:04:45

标签: react-native flowtype

我正在制作一个react本机组件并使用Flow来定义这样的属性类型:

type Props = {
    text: string,
    textStyle: object
}

然后将这些属性传递给组件内的Text组件。是否有反应原生的Flow类型定义,这将允许我做这样的事情:

textStyle: TextStyle

现在Flow可以检查textStyle值是否只包含Text组件样式允许的键。

我看到有TypeScript(React.TextStyle)的接口定义,但无法为Flow找到任何内容。

2 个答案:

答案 0 :(得分:6)

更新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>; 

已过时 following 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

答案 1 :(得分:5)

<强>更新

StyleObj不再是StyleSheetTypes的一部分。

现在导入:

{LayoutStyle, TransformStyle, ShadowStyle, ViewStyle, TextStyle, ImageStyle, DangerouslyImpreciseStyle} from 'react-native/Libraries/StyleSheet/StyleSheetTypes';

在你的情况下,你应该:

import { TextStyle } from 'react-native/Libraries/StyleSheet/StyleSheetTypes';