在React Native的View元素上直接添加样式属性是否正确?是否已废弃?
关于React Native View组件直接传样式属性的问题解答
写法合法性说明
原生React Native官方提供的View组件并不支持直接将样式属性作为顶层props传入,你观察到的两种写法效果一致,通常是以下两种情况导致:
- 你的项目中使用了二次封装的View组件,很多通用UI库、跨端开发框架都会做这类封装,组件内部会自动将顶层传入的样式属性合并到style对象中,属于封装层提供的语法糖。
- 你的项目引入了对应的babel转换插件,会在编译阶段自动将顶层样式属性合并到style属性里。
废弃相关说明
该写法不存在“已废弃”的说法,因为React Native官方原生组件从来没有正式支持过该特性,自然也没有对应的废弃声明。
如果没有上述封装或插件的支持,在原生React Native环境中直接写<View marginTop={20} />不会生效,相关样式属性会被当作无效props忽略。
推荐写法
建议优先遵循官方规范,统一通过style属性传入样式,不管是内联样式对象还是StyleSheet.create生成的样式对象都可以。该写法兼容性最强,也符合React Native的官方设计逻辑,不会因为框架版本升级、依赖变动出现样式失效的问题。
内容的提问来源于stack exchange,提问作者Carlos García
相关产品推荐
相关产品推荐

