Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 修复支付宝端CustomWrapper在特殊情况下不更新UI #14778

Merged
merged 8 commits into from
Nov 21, 2023

Conversation

moseszhou
Copy link
Contributor

这个 PR 做了什么? (简要描述所做更改)

支付宝渲染问题
当页面复杂,CustomWrapper和page都有数据更新时,CustomWrapper的UI会出现不更新的情况

复现仓库: https://github.com/moseszhou/myApp.git

复现条件:

customWrapper包含的状态单独异步setState一次(保证runtime中调用过customWrapper的setData)
同时更新与customWrapper同级且在前面的节点(添加和删除)与 customWrapper

这个 PR 是什么类型? (至少选择一个)

  • 错误修复(Bugfix) issue: fix #
  • 新功能(Feature)
  • 代码重构(Refactor)
  • TypeScript 类型定义修改(Typings)
  • 文档修改(Docs)
  • 代码风格更新(Code style update)
  • 其他,请描述(Other, please describe):

这个 PR 涉及以下平台:

  • 所有小程序
  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 字节跳动小程序
  • QQ 轻应用
  • 京东小程序
  • 快应用平台(QuickApp)
  • Web 平台(H5)
  • 移动端(React-Native)
  • 鸿蒙(harmony)

Copy link

taro-bot2 bot commented Nov 6, 2023

欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷

一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。

Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏

  1. 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
  2. 确保 CI 顺利运行。
  3. 最好能提供对应的测试用例。

为了更好地进行沟通,请加入 Taro 开发者微信群:

@Chen-jj
Copy link
Contributor

Chen-jj commented Nov 14, 2023

@moseszhou 感谢反馈~的确存在此问题。

修复的代码逻辑没有问题,但钩子 modifyMiniLifecycle 的命名感觉比较模糊,这个组件配置是给 Taro 内部的 comp、和 CustomWrapper 使用的,或许改为 modifyRecursiveComponentConfig 会比较合适?

@moseszhou
Copy link
Contributor Author

@moseszhou 感谢反馈~的确存在此问题。

修复的代码逻辑没有问题,但钩子 modifyMiniLifecycle 的命名感觉比较模糊,这个组件配置是给 Taro 内部的 comp、和 CustomWrapper 使用的,或许改为 modifyRecursiveComponentConfig 会比较合适?

我已经将modifyMiniLifecycle 修改为 modifyRecursiveComponentConfig
但是发现每次提交PR,对于test验证很难通过。

本地我执行了 pnpm --filter @tarojs/webpack5-runner run test:ci -upnpm --filter @tarojs/mini-runner run test:ci -u 更新了快照。然后执行 pnpm test执行通过。但是提交到github,线上的测试老是通过不了。不知道应该如何去做了。

我感觉应该也有不少提交PR的同学,也是被这个test拦住了。
是不是出一个关于test的流程。https://taro-docs.jd.com/docs/CONTRIBUTING-GUIDE#%E8%B4%A1%E7%8C%AE%E6%96%87%E6%A1%A3,按照这个流程似乎通过不了。

是不是taro官方把 node npm等版本说明一下。避免环境不一致导致的问题

@moseszhou
Copy link
Contributor Author

我现在的环境信息如下:
node:v16.19.0
npm:8.19.3
pnpm:8.10.2

@moseszhou
Copy link
Contributor Author

@Chen-jj

@Chen-jj
Copy link
Contributor

Chen-jj commented Nov 20, 2023

我看看 snapshot

@Chen-jj
Copy link
Contributor

Chen-jj commented Nov 20, 2023

印象中 pnpm8 会有些问题

@Chen-jj Chen-jj merged commit e07424c into NervJS:next Nov 21, 2023
4 checks passed
@Chen-jj
Copy link
Contributor

Chen-jj commented Nov 21, 2023

感谢贡献~

@moseszhou
Copy link
Contributor Author

@Chen-jj 你是如何修复快照的? 是需要固定一些环境的版本么?请将环境版本贴出来

@TheKonka
Copy link
Member

TheKonka commented Nov 21, 2023

因为 pnpm@8 不支持 node 14 ,所以 workflow 里面用的 pnpm@7 ,你本地用8生成的 snapshot就不一样,建议 taro 也抛弃对 node@14 支持,使用pnpm@8

node20 已经是 LTS了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants