taro icon indicating copy to clipboard operation
taro copied to clipboard

Input,TextArea标签 使用value进行双向绑定。快速输入跟快速删除时onInput setValue value会闪烁,显示旧的value

Open day-day-sleep opened this issue 1 year ago • 15 comments

相关平台

微信小程序

小程序基础库: 2.30.0 使用框架: React

复现步骤

"const onTextAreaInput = useCallback((e) => { setCommentText(e.detail.value); }, []);"

"<Textarea value={commentText} onInput={onTextAreaInput}/>"

在输入框快速输入

期望结果

希望能准确展示value值。不闪烁 不显示旧的value

实际结果

快速输入跟删除会闪烁,闪现旧的value

环境信息

👽 Taro v3.5.6


  Taro CLI 3.5.6 environment info:
    System:
      OS: macOS 10.14.5
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 16.19.1 - /usr/local/bin/node
      Yarn: 1.22.10 - /usr/local/bin/yarn
      npm: 8.19.3 - /usr/local/bin/npm
    npmPackages:
      @tarojs/cli: 3.5.12 => 3.5.12 
      @tarojs/components: 3.5.12 => 3.5.12 
      @tarojs/helper: 3.5.12 => 3.5.12 
      @tarojs/mini-runner: 3.5.12 => 3.5.12 
      @tarojs/plugin-framework-react: 3.5.12 => 3.5.12 
      @tarojs/plugin-platform-weapp: 3.5.12 => 3.5.12 
      @tarojs/react: 3.5.12 => 3.5.12 
      @tarojs/router: 3.5.12 => 3.5.12 
      @tarojs/runtime: 3.5.12 => 3.5.12 
      @tarojs/shared: 3.5.12 => 3.5.12 
      @tarojs/taro: 3.5.12 => 3.5.12 
      @tarojs/webpack-runner: 3.5.12 => 3.5.12 
      @tarojs/webpack5-runner: 3.5.12 => 3.5.12 
      babel-preset-taro: 3.5.12 => 3.5.12 
      eslint-config-taro: 3.5.12 => 3.5.12 
      react: ^18.2.0 => 18.2.0 
      taro-ui: ^3.1.0-beta.2 => 3.1.0-beta.2 

day-day-sleep avatar Jun 07 '23 10:06 day-day-sleep

@day-day-sleep 这块最近有调整,可以升级到最新版本后再试试

Chen-jj avatar Jun 07 '23 11:06 Chen-jj

@Chen-jj 升级到最新版本3.6.7 仍然会出现该问题。IOS下尤为严重,中文输入基本上不能准确打字

day-day-sleep avatar Jun 09 '23 09:06 day-day-sleep

在 3.6.6 和 3.6.8 都没能复现你说的问题,能否提供一个完整的 demo 仓库,我们再根据你提供的 demo 来进行一次排查

xuanzebin avatar Jun 14 '23 09:06 xuanzebin

@xuanzebin https://github.com/day-day-sleep/taro-demo 页面越复杂,元素越多就越严重

day-day-sleep avatar Jun 15 '23 02:06 day-day-sleep

@Chen-jj @xuanzebin 能重现吗? 大概什么时候会修复这个问题

day-day-sleep avatar Jun 21 '23 02:06 day-day-sleep

我也有这问题,就算 Textarea 和 Input 不设置 value,不设置onInput和setState也会触发这个问题 taro:3.6.7 小程序基础库: 2.32.x 安卓微信: 8.0.37

但是如果我用的是从Google 商店下载的微信(8.0.33)就没有这个问题。这是原生的webview和腾讯x5性能的区别吗?

joket1999 avatar Jun 21 '23 07:06 joket1999

@Chen-jj @xuanzebin 能重现吗? 大概什么时候会修复这个问题

能复现,然后排查出原因是因为 input 组件异步更新和用户输入存在冲突的问题,这块还在想办法解决,还需要一些时间来解决

xuanzebin avatar Jun 26 '23 06:06 xuanzebin

vue3 taro3.6.8版本也有这个问题 求尽快修复 项目很急 感谢

1045598742 avatar Jul 05 '23 08:07 1045598742

大概什么时候能修复呢?

Debug-xyh avatar Jul 12 '23 02:07 Debug-xyh

好了吗

SuJunming avatar Sep 11 '23 14:09 SuJunming

这么严重的问题,竟然没人修

FleeceWithFlower avatar Sep 22 '23 09:09 FleeceWithFlower

想问这块啥时候能修复呢?使用起来真的好影响体验

chenjinshu123 avatar Nov 09 '23 07:11 chenjinshu123

页面复杂,或者输入框一多的情况下就极容易出现这种情况。

chenjinshu123 avatar Nov 09 '23 07:11 chenjinshu123

@Chen-jj @xuanzebin 希望能尽快修复这个问题。用户体验非常差

day-day-sleep avatar Nov 10 '23 08:11 day-day-sleep

太严重了!难受!

MagicReader avatar Feb 08 '24 05:02 MagicReader

有什么办法可以规避吗?

cryzzchen avatar Mar 16 '24 11:03 cryzzchen

有什么办法可以规避吗?

给其他人一个规避方案:用 CustomWrapper 包裹 input 或 TextArea,提升其位置,可以有效规避这个问题。

cryzzchen avatar Mar 18 '24 07:03 cryzzchen

https://github.com/Fairfarren/taro-input-delay

做了一个规避方案的demo

一种采用CustomWrapper包裹,一种使用useRef

前者能解决大多数场景,后者在iphone7上有效改善输入问题

Fairfarren avatar Apr 05 '24 08:04 Fairfarren