我为什么要用这个:
const styles = StyleSheet.create({
...
});
而不是:
const styles = {
...
};
StyleSheet提供的属性对我来说似乎不太需要。
答案 0 :(得分:10)
将常规样式对象传递到StyleSheet.create()
时,模块将冻结对象并为每个对象分配一个ID。这允许避免在每次渲染过程中创建新的样式对象,并且它允许仅跨异步桥发送一次对象。
在每次渲染时发送相同的样式对象可能会导致渲染性能下降。
从我所看到的,在设置组件样式时,即使传递对象数组,也都可以工作(普通对象,StyleSheet对象)。
使用StyleSheet
对象时,缺点
1)您无法像styles.myNiceComponent.backgroundColor === 'blue'
这里有关于这个缺点的更多细节: Why can't we check a style attribute of a react-native app?
2)根据某些条件(如屏幕旋转)重新计算样式需要一些额外的基础结构代码来确定要使用的样式。如果你使用简单的物体,他们每次都可以重新计算。