react-native 在Android上,TextInput的onChangeText和onChange事件会触发两次,

3npbholx  于 5个月前  发布在  React
关注(0)|答案(6)|浏览(68)

描述

在启用新架构后,TextInput上的onChangeTextonChange事件在Android上会触发两次。

重现步骤

  1. 使用yarn android安装应用程序
  2. 在文本输入中输入一些文本
  3. 观察控制台中的日志
  4. 预期:每次按键时,onChange和onChangeText都会被记录一次
  5. 实际:它们每次按键时都被触发两次

React Native版本

0.74.3

受影响的平台

运行时- Android

领域

Fabric - 新的渲染器

npx react-native info的输出

System:
  OS: macOS 14.5
  CPU: (8) arm64 Apple M2
  Memory: 178.64 MB / 24.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: 3.6.4
    path: ~/.nvm/versions/node/v20.14.0/bin/yarn
  npm:
    version: 10.7.0
    path: ~/.nvm/versions/node/v20.14.0/bin/npm
  Watchman:
    version: 2024.05.06.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.14.3
    path: /Users/kadi/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.5
      - iOS 17.5
      - macOS 14.5
      - tvOS 17.5
      - visionOS 1.2
      - watchOS 10.5
  Android SDK: Not Found
IDEs:
  Android Studio: 2022.3 AI-223.8836.35.2231.10671973
  Xcode:
    version: 15.4/15F31d
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.10
    path: /Users/kadi/.sdkman/candidates/java/current/bin/javac
  Ruby:
    version: 2.7.8
    path: /Users/kadi/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.74.3
    wanted: 0.74.3
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: Not found
  newArchEnabled: false

堆栈跟踪或日志

(NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  t
 (NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  t
 (NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  te
 (NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  te
 (NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  tes
 (NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  tes
 (NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  test
 (NOBRIDGE) LOG  change
 (NOBRIDGE) LOG  test

可复现问题

https://github.com/kadikraman/new-arch-text-input-bug

截图和视频

Screen.Recording.2024-07-18.at.11.20.20.mov

6ojccjat

6ojccjat1#

@kadikraman 这种情况在iOS上也发生吗?

3gtaxfhh

3gtaxfhh2#

@kadikraman 这种情况在iOS上也发生过吗?
不,我只能在Android上重现它。

q8l4jmvw

q8l4jmvw3#

@kadikraman 我检查了这个问题,正如你提到的,它在react-native最新版本0.74.3中是可重现的。但是我无法在当前的react-native主目录中重现它,即使用那里的rn-tester应用程序here。也许它已经修复了,只需在那里检查一下。

cqoc49vn

cqoc49vn4#

@kadikraman 我检查了这个问题,正如你提到的,它在最新的react-native版本0.74.3中是可以复现的。但是我无法在当前的react-native主程序中复现它,即使用那里的rn-tester应用程序here。也许它已经修复了,你可以在那里检查一下。
有趣的是,看起来这里也是一样:我无法在react native仓库中的测试应用程序上复现它🤔

zu0ti5jz

zu0ti5jz5#

我们可以研究这些代码之间的diff关系,或者等待新版本发布。

7bsow1i6

7bsow1i66#

你们能尝试使用复现器react-native@nightly吗?

相关问题