在React-Native中,我在hitSlop
组件中定义了TouchableHightlight
道具。我想知道是否可以将属性添加到函数StyleSheet.create()
以及它是否也有意义?
以下是我的代码示例:
const styles = StyleSheet.create({
});
const MyComp = () => (
<TouchableHighlight hitSlop={{ top: 8, left: 8, right: 8, bottom: 8 }}>
</TouchableHighlight>
)
答案 0 :(得分:2)
传递给hitSlop
的对象具有严格定义的键,仅限于顶部,左侧,底部和右侧。 StyleSheet.create()
的结果是不兼容的类型,因此会抛出这样的错误:
NSNumber类型的JSON值'84'无法转换为UIEdgeInsets
以下是错误示例:
答案 1 :(得分:1)
我不这么认为
StyleSheet是一种类似于CSS StyleSheets的抽象。样式表仅适用于样式属性(如高度,宽度,颜色等)。
由于hitSlop更像是一个特征而不是一个样式,我认为它不应该是StyleSheet属性的一部分。
答案 2 :(得分:1)
hitSlop
绝对不能成为StyleSheet的一部分,但是您可以为该值创建一个变量,这样就不会在每个渲染器上重新创建该变量。
const MY_COMP_HIT_SLOP = { top: 8, left: 8, right: 8, bottom: 8 }
const MyComp = () => (
<TouchableHighlight hitSlop={MY_COMP_HIT_SLOP}>
</TouchableHighlight>
)
这实际上是React Native的人们在一个类似的道具上推荐的:pressRetentionOffset
(reference)