为什么使用 StyleProp<ViewStyle> 而不是 ViewStyle?

问题描述 投票:0回答:1

我正在查看一些 React Native Typescript 代码,并看到组件采用了 style props。 这些类型为

StyleProp<ViewStyle>
。但这种类型给我带来了问题,比如无法传播道具(例如,我可能想传播以覆盖
backgroundColor
)。

interface Props {
   aStyleProp: StyleProp<ViewStyle>
}

所以我只是将

aStyleProp
输入为
ViewStyle

不使用

StyleProp
我会失去一些重要的东西吗?

Code trying to spread prop

查看

StyleProp
的类型定义(从“react-native”导入),我并不觉得
RegisteredStyle<T>
RecursiveArray
是其可能的类型更明智。

reactjs react-native react-props
1个回答
0
投票

StyleProp<ViewStyle>
接受的类型范围比
ViewStyle
更广。

StyleProp<T>
的定义:

export type StyleProp<T> =
  | T
  | RegisteredStyle<T>
  | RecursiveArray<T | RegisteredStyle<T> | Falsy>
  | Falsy;

因此,当涉及

StyleProp<ViewStyle>
时,它不仅接受
ViewStyle
类型,还接受
ViewStyle
数组和
Falsy
类型,转换为
false || null || undefined

这意味着,例如,这对于

StyleProp<ViewStyle>
有效,但对于
ViewStyle
无效:

  • style={[styles.style1, styles.style2]}
    - 样式数组
  • style={undefined}
    - 任意
    Falsy
© www.soinside.com 2019 - 2024. All rights reserved.