我正在制作一个react本机组件并使用Flow来定义这样的属性类型:
type Props = {
text: string,
textStyle: object
}
然后将这些属性传递给组件内的Text组件。是否有反应原生的Flow类型定义,这将允许我做这样的事情:
textStyle: TextStyle
现在Flow可以检查textStyle值是否只包含Text组件样式允许的键。
我看到有TypeScript(React.TextStyle)的接口定义,但无法为Flow找到任何内容。
答案 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';