我必须将要显示的文本的第一个字母大写。我搜索了它,但我找不到明确的做法,text
在 react native 官方文档中也没有这样的道具。
我正在使用以下格式显示我的文本:
<Text style={styles.title}>{item.item.title}</Text>
或者
<Text style={styles.title}>{this.state.title}</Text>
我该怎么做?
欢迎提出建议?
我必须将要显示的文本的第一个字母大写。我搜索了它,但我找不到明确的做法,text
在 react native 官方文档中也没有这样的道具。
我正在使用以下格式显示我的文本:
<Text style={styles.title}>{item.item.title}</Text>
或者
<Text style={styles.title}>{this.state.title}</Text>
我该怎么做?
欢迎提出建议?
写一个这样的函数
Capitalize(str){
return str.charAt(0).toUpperCase() + str.slice(1);
}
然后从<Text>
标签调用它通过将文本作为参数传递
<Text>{this.Capitalize(this.state.title)} </Text>
您还可以text-transform
在样式中使用 css 属性:
<Text style={{textTransform: 'capitalize'}}>{this.state.title}</Text>
React native 现在可以让你直接用textTransform: 'capitalize'
. 没有必要的功能。
import React from 'react'
import { StyleSheet, Text } from 'react-native'
// will render as Hello!
const Caps = () => <Text style={styles.title}>hello!</Text>
export default Caps
const styles = StyleSheet.create({
title: {
textTransform: 'capitalize'
}
})
代替使用函数,更简洁的方法是将其编写为通用组件。
import React from 'react';
import { View, Text } from 'react-native';
const CapitalizedText = (props) => {
let text = props.children.slice(0,1).toUpperCase() + props.children.slice(1, props.children.length);
return (
<View>
<Text {...props}>{text}</Text>
</View>
);
};
export default CapitalizedText;
无论您在哪里使用<Text>
,都将其替换为<CapitalizedText>
只需使用 javascript。
text.slice(0,1).toUpperCase() + text.slice(1, text.length)
简单 有 2 个选项是可能的。
选项 1:使用.toUpperCase()
选项 2:eith CsstextTransform: 'capitalize'
TextInput 有这个处理使用
autoCapitalize enum('none', 'sentences', 'words', 'characters')
例如尝试这样
<TextInput
placeholder=""
placeholderTextColor='rgba(28,53,63, 1)'
autoCapitalize = 'none'
value ='test'
/>
这对我有用!
labelStyle:{
textTransform: 'capitalize',
fontSize:20,
},
由于这是非常通用的功能,我将它放在strings.js
我的库下的一个文件中:
// lib/strings.js
export const CapitalizeFirstLetter = (str) => {
return str.length ? str.charAt(0).toUpperCase() + str.slice(1) : str
}
只需将其导入需要它的组件中:
import React from 'react';
import { View, Text } from 'react-native';
import { CapitalizeFirstLetter} from 'lib/strings'
export default function ComponentWithCapitalizedText() {
return <Text>CapitalizeFirstLetter("capitalize this please")</Text>
}
是的,可以通过以下任何一个步骤将 react native 中的文本/字符串的第一个字母大写:
第 1 步:在项目文件中调用FirstCapitalize函数
const FirstCapitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
然后
<Text style={{fontsize:10}}> {FirstCapitalize('hello world')} </Text>
第 2 步:只需为文件中的Text组件设置样式
<Text style={{fontsize:10,textTransform: 'capitalize'}}>hello world</Text>
有两种选择是可能的。
选项 1 :-使用 javascript
写一个函数
Capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
利用 :-
<Text style={{}}> {this.Capitalize('test')} </Text>
选项 2:-与样式表一起使用 textTransform css。
<Text style={{textTransform: 'capitalize'}}>test</Text>
我刚刚添加了一个原型函数,基于@mayuresh 答案
String.prototype.Capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
并像这样使用它:
myStr.Capitalize()