{"type":"rich","version":"1.0","provider_name":"Transistor","provider_url":"https://transistor.fm","author_name":"Programming Tech Brief By HackerNoon","title":"Your Users Type Faster Than Your JavaScript. React Native Drops the Difference","html":"<iframe width=\"100%\" height=\"180\" frameborder=\"no\" scrolling=\"no\" seamless src=\"https://share.transistor.fm/e/01947071\"></iframe>","width":"100%","height":180,"duration":576,"description":"\n        This story was originally published on HackerNoon at: https://hackernoon.com/your-users-type-faster-than-your-javascript-react-native-drops-the-difference.\n             Why React Native TextInput drops characters when you type fast: the eventCount handshake that does it on purpose, the source behind it, and the fix. \n            Check more stories related to programming at: https://hackernoon.com/c/programming.\n            You can also check exclusive content about #react-native, #ios-development, #javascript, #objective-c, #react-native-eventcount, #chat-app-optimization, #controlled-input-performance, #react-native-textinput-bug,  and more.\n            \n            \n            This story was written by: @grievouz. Learn more about this writer by checking @grievouz's about page,\n            and for more stories, please visit hackernoon.com.\n            \n                \n                \n                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.\n        \n        ","thumbnail_url":"https://img.transistorcdn.com/KhCapPSRkLGL2Xw8888yuChkNRWthaKapLYTvNdu4W4/rs:fill:0:0:1/w:400/h:400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9zaG93/LzQxMTY2LzE2ODM1/ODIzMzAtYXJ0d29y/ay5qcGc.webp","thumbnail_width":300,"thumbnail_height":300}