如何解决Stylesheet.create返回对象而不是数字
我使用RN 0.62.2对本地设置进行了简单测试:
const styles = Stylesheet.create({
container: {
flex: 1
}
});
console.log(styles);
鉴于理论上样式表可以缓存样式,因此我希望得到这样的日志:
{
container: 120
}
但是实际上它返回对象:
{
container: { flex: 1 }
}
然后我在具有相同版本RN的expo应用程序(https://snack.expo.io/@agustito37/4a556c)中尝试了相同的操作,结果是预期的结果:
{
container: 120
}
所以我有些困惑,有人认为缓存已删除(What is the point of StyleSheet.create);但是给定expo返回的标识符不确定,Stylesheet.create是否正常工作? 为什么我在博览会上有不同的结果?可能是博览会有较旧版本的样式表吗?
解决方法
我认为这是因为当您使用 StyleSheet.create
时,react-native-web 会将样式对象注册为原子 css 类。所以它可能会返回一个注册回来的ID。如果您不通过 StyleSheet.create
路由样式对象,则会呈现内联样式。我在使用带有 expo/react-native-web 的 UI Kitten 时发现了这一点,并截取了为每种方法生成的不同 css/样式的屏幕截图:
https://github.com/akveo/react-native-ui-kitten/issues/1266
我认为在某些时候它曾经在 react native 上类似地工作,目的是优化跨桥行程,但显然根据您包含的链接不再是这种情况。有趣!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。