是否需要使用StyleSheet.create?

Guy*_*Guy 13 react-native

我以这种方式定义样式:

const styles = StyleSheet.create({
    container: {},
    tabContent: {
        alignItems: "flex-start",
        flexDirection: "column",
        padding: 21
    },
    tabHeader: {
        flex: 0,
        fontSize: 10,
        paddingTop: 10,
    },
    tabText: {
        flex: 0,
        fontSize: 14,
        paddingTop: 10,
        textAlign: "left"
    },
})
Run Code Online (Sandbox Code Playgroud)

但是,有一次我忘了使用StyleSheet.create并使用了一个普通对象:

const styles = {
    container: {},
    tabContent: {
        alignItems: "flex-start",
        flexDirection: "column",
        padding: 21
    },
    tabHeader: {
        flex: 0,
        fontSize: 20,
        paddingTop: 10,
    },
    tabText: {
        flex: 0,
        fontSize: 14,
        paddingTop: 10,
        textAlign: "left"
    },
}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是它有效.是否需要使用StyleSheet.create来定义样式,还是可以使用普通对象?

Dav*_*vid 12

认为StyleSheet在可能的情况下使用它仍然比使用常规对象更好.

来自React Native Docs:

性能:

  • 从样式对象制作样式表可以通过ID引用它,而不是每次都创建一个新的样式对象.
  • 它还允许仅通过桥发送一次样式.所有后续用法都将引用id(尚未实现).

记得在某个地方看到某些东西(认为这是一个github问题),并提出类似的问题,并且有人说它更适合StyleSheet用于表现.

希望这可以帮助!

  • 我还注意到常规对象不会抛出错误.如果你在常规对象中执行{cursor:'pointer'},则不会抛出任何错误.如果你在StyleSheet中执行它,它会捕获错误. (7认同)