React native:为什么stylesheet.create返回带有数字而不是样式的对象?

时间:2018-04-11 18:38:22

标签: react-native

我创建了样式,但有时我不能使用它们,因为它们会返回数字:

const styles = StyleSheet.create({
    container: {
        flex: 1,
        backgroundColor: '#FFFFFF'
    },
    moodSliderContainer: {
        justifyContent: 'center',
        alignItems: 'center',
        width: '100%'
    },
    postListContainer: {
        width: '100%',
        height: '100%',
        paddingBottom: 120
    }
});
console.log(styles);

enter image description here

3 个答案:

答案 0 :(得分:2)

来自React Native documentation - StyleSheet

  

性能:

     
      
  • 从样式对象制作样式表可以通过ID引用它,而不是每次都创建一个新的样式对象。

  •   
  • 它还允许仅通过桥发送一次样式。所有后续用途都将引用一个id(尚未实现)。

  •   

如果要检索实际样式对象,可以使用StyleSheet.flatten(styles.container)

答案 1 :(得分:0)

样式表用于减少处理时间优化性能

这些数字是对原始stylesheet对象的引用。您可以检查每个样式表的编号是否唯一,并且没有重叠。

因此用数字替换它们是有意义的。它与Images中的react-native路径存储类似。

答案 2 :(得分:0)

可能是可重用性。将数字视为表中的索引。例如,在您的情况下,容器样式存储在219

BigStylesMap = { 
    219: {
        flex: 1,
        backgroundColor: '#FFFFFF'
    }
    ...otherCachedStyles
}

如果找到其他定义了相似样式的地方,它可以引用同一个对象。