gpt4 book ai didi

react-native - 如何获取 String of TextInput 中的当前行数?

转载 作者:行者123 更新时间:2023-12-05 01:40:23 24 4
gpt4 key购买 nike

TextInput 中输入文本后我想知道 TextInput 中的当前行数。或者strings的当前个数也是可以的。

我试过 string.split('\n').length,但是这段代码没有检测到当文本大于屏幕时该行会自动递增。

如何获取行数

当我在 Swift 中创建此功能时使用 string.enumerateLines 函数实现。

你们有类似的功能吗?

最佳答案

据我所知,没有官方方法可以获取当前使用的行数,但我有一个解决方法:

我们使用 TextInputonLayout 方法并跟踪当前使用的高度。我们需要两个状态变量:

this.state = {
height: 0, // here we track the currently used height
usedLines: 0,// here we calculate the currently used lines
}

布局:

  _onLayout(e) {
console.log('e', e.nativeEvent.layout.height);
// the height increased therefore we also increase the usedLine counter
if (this.state.height < e.nativeEvent.layout.height) {
this.setState({usedLines: this.state.usedLines+1});
}
// the height decreased, we subtract a line from the line counter
if (this.state.height > e.nativeEvent.layout.height){
this.setState({usedLines: this.state.usedLines-1});
}
// update height if necessary
if (this.state.height != e.nativeEvent.layout.height){
this.setState({height: e.nativeEvent.layout.height});
}

}

渲染方法

  render() {
console.log('usedLines', this.state.usedLines);
return (
<View style={styles.container}>
<TextInput multiline style={{backgroundColor: 'green'}} onLayout={(e)=> this._onLayout(e)} />
</View>
);
}

工作示例:

https://snack.expo.io/B1vC8dvJH

关于react-native - 如何获取 String of TextInput 中的当前行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56663069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com