我几天前开始使用react-native工作,经过一些广泛的搜索,我无法找到2个(简单?)问题的答案:
-
如何更改react-native中所有 Text 组件的颜色?什么是最佳做法?使用样式创建自己的Text组件并在任何地方重用它?
-
更改 TextInput 的默认文本颜色 . 我设法更改占位符颜色,以及android中的下划线颜色,但我找不到任何关于如何更改输入文本颜色(保持黑色) .
-
无论如何,我可以更改 everything 的字体/文字颜色吗?似乎缺少此选项 .
感谢您的帮助和欢呼
2 回答
为了获得
Text
元素(或React Native应用程序中使用的任何其他基本元素)的一致样式,我们的团队已经开始为我们的应用程序构建一个组件库,它们与我们设计的样式指南的样式和命名相匹配球队 .例如,您的文本组件将如下所示:
以这种方式创建文本组件,您可以定义可用的样式,并向开发人员显示警告,如果他们不使用带有
PropTypes
定义的有效样式 .我们还希望能够从您需要的任何文件中轻松地引用此库中的组件,因此我们为主库文件提供了一个名称,其中包含一些内部React Native组件使用的
providesModule
注释 .主库文件看起来像这样 .
然后,您只需要在任何需要自定义Text组件的组件文件中导入它 .
这是一种方法 . 不确定这是否是最好的方式,但这是我们的团队构建组件的好方法,因此它们的设计始终符合我们的风格指南 .
至于更改Android TextInput组件的文本颜色,只需将
color: 'orange'
指定为样式,将文本更改为橙色 . 我们此时正在使用RN 0.28 .你有两个选择:
使用您想要的默认样式创建您自己的
Text
组件,并在任何地方重复使用它 . (就像你提到的那样)创建一个可全局访问的
StyleSheet
对象,并在每个Text
组件中使用它 .我认为#1是最好的选择 . 尽管将所有_562119交换掉了,但它为您项目的未来提供了更好的灵活性 .
除非您创建
react-native
库的分支并修改Text
的源代码,否则无法更改所有现有的Text
组件 . 我不推荐这种方法 .