描述
当TextInput组件被控制,并且multiline属性设置为true时,在输入一些文本并添加新行后,文本会被截断。然而,当添加一个新字符时,文本会正确显示。
重现步骤
- 添加一个TextInput
- 设置value prop和onChangeText
- 将multiline prop设置为true
- 添加一些文本
- 添加一个新行,通过键盘上的Enter按钮
- 文本被截断
React Native版本
0.74.3
受影响的平台
运行时-Android
npx react-native info
的输出
System:
OS: macOS 13.6.7
CPU: (10) arm64 Apple M1 Pro
Memory: 41.83 MB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.14.0
path: ~/.nvm/versions/node/v20.14.0/bin/node
Yarn:
version: 1.22.22
path: /opt/homebrew/bin/yarn
npm:
version: 10.7.0
path: ~/.nvm/versions/node/v20.14.0/bin/npm
Watchman:
version: 2023.11.27.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.15.2
path: /Users/eduardograciano/.gem/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 22.4
- iOS 16.4
- macOS 13.3
- tvOS 16.4
- watchOS 9.4
Android SDK: Not Found
IDEs:
Android Studio: 2022.3 AI-223.8836.35.2231.10671973
Xcode:
version: 14.3.1/14E300c
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.10
path: /usr/bin/javac
Ruby:
version: 2.7.5
path: /Users/eduardograciano/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli": Not Found
react: Not Found
react-native: Not Found
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: false
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: true
堆栈跟踪或日志
-
可复现问题
https://github.com/gedu/android-composer-reproducer
截图和视频
android_composer_cutoff_multiline.mp4
5条答案
按热度按时间kfgdxczn1#
kognpnkq2#
@gedu 我检查了这个问题,它在新架构中可以重现,在旧架构中也能正确工作。
@cortinico 我会调查这个问题。
yrdbyhpb3#
在调试过程中,我发现了这个待办事项:
react-native/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java
第1342行 in 245e5d9
| | // TODO T58784068: 一旦Fabric发布,就移动这个构造函数 |
在这里我们将padding设置为零。
我们需要将这段代码块移动到哪里?
vsaztqbk4#
我认为这与正在修复的这个PR是同一个问题- #42331
eivnm1vs5#
@j-piasecki 我认为你的分叉仓库与主仓库不同步。
这个文件:
packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java
目前已经不存在了。此外,这个文件中的代码也发生了变化:
packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java
你能检查一下吗?我正在尝试测试这个修复。