Your Users Type Faster Than Your JavaScript. React Native Drops the Difference (opens in new tab)
React Native makes TextInput feel controlled, but native owns the text and your JS value is a lagging copy. An eventCount handshake stamps each write; if you typed while JS re-rendered, the counts mismatch and native drops the write on purpose. The leftover dropped characters come from transforms, cursor races, IME resets, and the old architecture. It is worst on a busy chat screen. Fix: keep the keystroke path cheap or go uncontrolled.
Read the original article