Text
文本
支持情况:
类型
ComponentType<TextProps>
示例代码
- React
- Vue
export default class PageView extends Component {
state = {
contents: [],
contentsLen: 0
}
add = () => {
this.setState(prev => {
const cot = prev.contents.slice()
cot.push({ text: 'hello world' })
return {
contents: cot,
contentsLen: cot.length
}
})
}
remove = () => {
this.setState(prev => {
const cot = prev.contents.slice()
cot.pop()
return {
contents: cot,
contentsLen: cot.length
}
})
}
render () {
return (
<View className='container'>
{this.state.contents.map((item, index) => (
<Text key={index}>{item.text}</Text>
))}
<Button className='btn-max-w button_style' plain type='default' onClick={this.add}>add line</Button>
<Button className='btn-max-w button_style' plain type='default' disabled={this.state.contentsLen ? false : true} onClick={this.remove}>remove line</Button>
</View>
)
}
}
<template>
<view class="container">
<view v-for="(item, index) in contents">
<text>{{item.text}} line {{index + 1}}</text>
</view>
<button class="btn-max-w button_style" :plain="true" type="default" @tap="add">add line</button>
<button class="btn-max-w button_style" :plain="true" type="default" :disabled="contentsLen ? false : true" @tap="remove">remove line</button>
</template>
<script>
export default {
data() {
return {
contents: [],
contentsLen: 0
}
},
methods: {
add () {
const cot = this.contents.slice()
cot.push({ text: 'hello world' })
this.contents = cot
this.contentsLen = cot.length
},
remove () {
const cot = this.contents.slice()
cot.pop()
this.contents = cot
this.contentsLen = cot.length
}
}
}
</script>
TextProps
参数 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
selectable | boolean | false | 否 | 文本是否可选 |
userSelect | boolean | false | 否 | 文本是否可选,该属性会使文本节点显示为 inline-block |
space | keyof TSpace | 否 | 显示连续空格 | |
decode | boolean | false | 否 | 是否解码 |
numberOfLines | number | 否 | 多行省略,值须大于等于 1,表现同 css 的 -webkit-line-clamp 属性一致。 | |
overflow | keyof Overflow | 'visible' | 否 | 文本溢出处理 |
maxLines | number | 否 | 限制文本最大行数 |
API 支持度
API | 微信小程序 | 百度小程序 | 支付宝小程序 | 抖音小程序 | QQ 小程序 | 京东小程序 | H5 | React Native | Harmony | Harmony hybrid |
---|---|---|---|---|---|---|---|---|---|---|
TextProps.selectable | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
TextProps.userSelect | ✔️ | ✔️ | ✔️ | |||||||
TextProps.space | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
TextProps.decode | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | (默认解码,不支持设置) | ||||
TextProps.numberOfLines | ✔️ | |||||||||
TextProps.overflow | ✔️ | |||||||||
TextProps.maxLines | ✔️ | ✔️ |
TSpace
space 的合法值
参数 | 说明 |
---|---|
ensp | 中文字符空格一半大小 |
emsp | 中文字符空格大小 |
nbsp | 根据字体设置的空格大小 |
Overflow
参数 | 说明 |
---|---|
clip | 修剪文本 |
fade | 淡出 |
ellipsis | 显示省略号 |
visible | 文本不截断 |