React Native 0.53.3中fontVariant的预期JSON格式及使用问题咨询
解决React Native 0.53.3中Text组件fontVariant的JSON格式问题
嘿,这个问题我碰到过类似的情况,给你梳理一下解决方案:
首先,你遇到的iOS报错是因为iOS严格遵循React Native官方文档的要求,而Android做了兼容处理,允许字符串类型的值。在0.53.3版本中,fontVariant确实需要传入枚举数组类型,而不是单纯的字符串。
正确的JSON格式写法
如果是在JSON样式配置里,你需要把small-caps放在数组中:
{ "textStyle": { "fontVariant": ["small-caps"] } }
在StyleSheet中的写法(更常用)
如果是在React Native的StyleSheet里定义样式,写法类似:
import { StyleSheet } from 'react-native'; const styles = StyleSheet.create({ textStyle: { fontVariant: ['small-caps'] } });
为什么之前的写法在Android可行?
Android端的React Native底层可能做了容错处理,自动将字符串转换为单元素数组,但iOS端没有这个兼容逻辑,所以直接传字符串会抛出JSON value 'small-caps' of type NSString cannot be converted to NSArray的错误。
只要把字符串改成单元素数组,就能同时兼容Android和iOS啦!
内容的提问来源于stack exchange,提问作者Hugo Silva
相关产品推荐
相关产品推荐

