Taro 3 百度小程序每次 setData 都会导致页面全量重新渲染,导致图片闪烁、输入框无法正常使用等问题
fjc0k opened this issue · comments
相关平台
百度小程序
复现仓库
https://github.com/fjc0k/taro3-baidu-bug.git
小程序基础库: 3.19
使用框架: React
复现步骤
git clone https://github.com/fjc0k/taro3-baidu-bug.git
npm i
npm run dev:swan
- 用百度小程序开发者工具导入目录
taro3-baidu-bug
- 在输入框里输入任意值
- 此时会发现,输入框里每次只能输入一个字符,即输入一个字符后就失去焦点了,并且每次输入后图片都会闪烁一下
(这里有一个 Gif 图演示,由于帧数问题,不能表现出图片闪烁问题,但能看到每次输入后输入框的焦点都会失去,即发生了页面全量重新渲染)
期望结果
输入框可以连续输入字符,图片不会闪烁
实际结果
输入框只能每次输入一个字符,图片闪烁
环境信息
```bash
Taro CLI 3.0.7 environment info:
System:
OS: macOS 10.15
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.18.3 - /var/folders/l7/rmfdyg291wzb0l8x09ww32g00000gn/T/yarn--1596978218331-0.741200130041614/node
Yarn: 1.22.4 - /var/folders/l7/rmfdyg291wzb0l8x09ww32g00000gn/T/yarn--1596978218331-0.741200130041614/yarn
npm: 6.14.6 - ~/.nvm/versions/node/v12.18.3/bin/npm
npmPackages:
@tarojs/cli: ^3.0.7 => 3.0.7
@tarojs/components: ^3.0.7 => 3.0.7
@tarojs/mini-runner: ^3.0.7 => 3.0.7
@tarojs/react: ^3.0.7 => 3.0.7
@tarojs/runtime: ^3.0.7 => 3.0.7
@tarojs/taro: ^3.0.7 => 3.0.7
@tarojs/webpack-runner: ^3.0.7 => 3.0.7
babel-preset-taro: ^3.0.7 => 3.0.7
react: ^16.10.0 => 16.13.1
补充信息
百度小程序社区也有相关帖子,但估计得 Taro 这边解决:
我也遇到这样的问题,每次 setState 都会全量渲染,页面会闪烁并重新加载,版本 3.0.5 升级到 3.0.7都是一样
+1
坐等修复
我用原生写法模拟 Taro 3 的渲染机制复现了问题,回复在百度论坛的帖子上了:https://smartprogram.baidu.com/forum/topic/show/115463
Taro 3 使用 <template />
拼接进行渲染,触发了百度的渲染逻辑问题(他们的设定,也不能说是 bug。。)
正在与百度方面沟通解决,应该只能等他们修复,着急开发的朋友只能先选用 Taro 1 / 2 了。
原生 demo:
可以先用useRef解决,input不受控,值存到ref中
+1
+1
这么久了,这个还没修复吗?
我也遇到一样的问题 版本3.0.13
+1相同的情况
关注 +1
关注+1,这个问题太影响体验了,目前没办法开发了
百度小程序开发体验太糟糕了
·
百度小程序开发体验太糟糕了
降级Taro2吧
root.cn修改成array类型,上面的demo两个问题都解决了
@jiangjiu 十分感谢,我们看看的,尽快修复
@jiangjiu 十分感谢,我们看看的,尽快修复
行的通吗 能发新版本了吗
@doublethinkio 着急的话可以按照上述 commit 修改本地 node_modules 的对应文件