Skip to content

Conversation

Single-Dancer
Copy link
Collaborator

@Single-Dancer Single-Dancer commented Jul 11, 2025

这个 PR 做了什么? (简要描述所做更改)
支持动态加载数据

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

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

这个 PR 涉及以下平台:

  • 所有平台
  • Web 端(H5)
  • 移动端(React-Native)
  • 鸿蒙(Harmony)
  • 鸿蒙容器(Harmony Hybrid)
  • ASCF 元服务
  • 快应用(QuickApp)
  • 所有小程序
  • 微信小程序
  • 企业微信小程序
  • 京东小程序
  • 百度小程序
  • 支付宝小程序
  • 支付宝 IOT 小程序
  • 钉钉小程序
  • QQ 小程序
  • 飞书小程序
  • 快手小程序
  • 头条小程序

Summary by CodeRabbit

  • 新特性

    • WaterFlow 组件支持根据子元素数量动态调整 section 节点。
    • Section 新增 pushNode 和 pushNodes 公共方法,便于节点管理。
  • 优化

    • WaterFlow 组件渲染性能与健壮性提升,修复部分边界判断。
    • 代码风格与格式统一,提升可读性和维护性。
    • 部分方法访问权限调整,提升扩展性。
  • 其他

    • 所有相关包版本号升级至 4.1.4-beta.9。

Copy link

coderabbitai bot commented Jul 11, 2025

"""

Walkthrough

本次变更主要将项目中所有相关 package.json 文件的版本号从 4.1.3 升级为 4.1.4-beta.9。同时,针对 taro-components-advanced 的 water-flow 组件部分,进行了代码格式优化、方法可见性调整、边界条件修正,以及节点动态添加等细节优化,未涉及核心功能或接口的重大变更。

Changes

文件/路径分组 变更简述
所有 package.json 文件(主包及各子包、平台适配包等) 版本号从 4.1.3 升级至 4.1.4-beta.9,未修改其它元数据、依赖或配置。
.../taro-components-advanced/src/components/water-flow/flow-section.ts 渲染 FlowItemContainer 时,key 从 ${id}-item-${index} 改为 node.id
.../taro-components-advanced/src/components/water-flow/root.ts 代码格式优化,部分方法可见性调整(如 updateScrollHeight 由 private 改为 public),scroll 事件处理逻辑微调。
.../taro-components-advanced/src/components/water-flow/section.ts 格式优化,isInRange getter 边界条件由 </> 改为 <=/>=,新增 pushNode/pushNodes 方法。
.../taro-components-advanced/src/components/water-flow/water-flow.ts 优化组件导入、参数结构、handleScroll 简化,section 节点数动态调整,渲染时跳过 null children。

Sequence Diagram(s)

sequenceDiagram
  participant 用户
  participant WaterFlow组件
  participant Section
  participant FlowItemContainer

  用户->>WaterFlow组件: 传入 children
  WaterFlow组件->>Section: 检查/创建 Section,动态 pushNodes
  Section-->>WaterFlow组件: 返回节点数据
  WaterFlow组件->>FlowItemContainer: 渲染,key 使用 node.id
  用户->>WaterFlow组件: 触发滚动
  WaterFlow组件->>Section: 判断渲染范围
  Section-->>WaterFlow组件: 返回可见节点
  WaterFlow组件->>FlowItemContainer: 渲染可见节点
Loading

Possibly related PRs

  • NervJS/taro#17801: 该 PR 也涉及批量 package.json 版本号升级,内容与本次 PR 结构类似,均为元数据更新。
  • NervJS/taro#17932: 该 PR 将版本号从 4.1.4-beta.4 回退到 4.1.3,与本次版本号升级方向相反,但涉及同一批 package.json。
  • NervJS/taro#17549: 同样是批量更新 package.json 版本号,未改动导出或公共实体,变更相关但无代码交叉。

Suggested reviewers

  • tutuxxx
  • luckyadam

Poem

兔子挥笔写新诗,
版本号跳跃如春枝。
水流组件添新技,
节点动态更灵犀。
格式优化细如丝,
代码整洁展新姿。
升级 beta 乐开怀,
跳跃前行不迟疑!

 (_/)
( •_•)
/ >🌱
"""


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e23dfb9 and 488e169.

📒 Files selected for processing (83)
  • crates/native_binding/package.json (1 hunks)
  • npm/darwin-arm64/package.json (1 hunks)
  • npm/darwin-x64/package.json (1 hunks)
  • npm/linux-x64-gnu/package.json (1 hunks)
  • npm/linux-x64-musl/package.json (1 hunks)
  • npm/win32-x64-msvc/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json (1 hunks)
  • packages/babel-plugin-transform-solid-jsx/package.json (1 hunks)
  • packages/babel-plugin-transform-taroapi/package.json (1 hunks)
  • packages/babel-preset-taro/package.json (1 hunks)
  • packages/create-app/package.json (1 hunks)
  • packages/css-to-react-native/package.json (1 hunks)
  • packages/eslint-config-taro/package.json (1 hunks)
  • packages/eslint-plugin-taro/package.json (1 hunks)
  • packages/jest-helper/package.json (1 hunks)
  • packages/postcss-html-transform/package.json (1 hunks)
  • packages/postcss-plugin-constparse/package.json (1 hunks)
  • packages/postcss-pxtransform/package.json (1 hunks)
  • packages/postcss-unit-transform/package.json (1 hunks)
  • packages/rollup-plugin-copy/package.json (1 hunks)
  • packages/shared/package.json (1 hunks)
  • packages/stylelint-config-taro-rn/package.json (1 hunks)
  • packages/stylelint-taro-rn/package.json (1 hunks)
  • packages/stylelint-taro/package.json (1 hunks)
  • packages/taro-api/package.json (1 hunks)
  • packages/taro-cli-convertor/package.json (1 hunks)
  • packages/taro-cli/package.json (1 hunks)
  • packages/taro-components-advanced/package.json (1 hunks)
  • packages/taro-components-advanced/src/components/water-flow/flow-section.ts (2 hunks)
  • packages/taro-components-advanced/src/components/water-flow/root.ts (13 hunks)
  • packages/taro-components-advanced/src/components/water-flow/section.ts (8 hunks)
  • packages/taro-components-advanced/src/components/water-flow/water-flow.ts (4 hunks)
  • packages/taro-components-library-react/package.json (1 hunks)
  • packages/taro-components-library-solid/package.json (1 hunks)
  • packages/taro-components-library-vue3/package.json (1 hunks)
  • packages/taro-components-react/package.json (1 hunks)
  • packages/taro-components-rn/package.json (1 hunks)
  • packages/taro-components/package.json (1 hunks)
  • packages/taro-extend/package.json (1 hunks)
  • packages/taro-framework-react/package.json (1 hunks)
  • packages/taro-framework-solid/package.json (1 hunks)
  • packages/taro-framework-vue3/package.json (1 hunks)
  • packages/taro-h5/package.json (1 hunks)
  • packages/taro-helper/package.json (1 hunks)
  • packages/taro-loader/package.json (1 hunks)
  • packages/taro-platform-alipay/package.json (1 hunks)
  • packages/taro-platform-ascf/package.json (1 hunks)
  • packages/taro-platform-h5/package.json (1 hunks)
  • packages/taro-platform-harmony-cpp/package.json (1 hunks)
  • packages/taro-platform-harmony-hybrid/package.json (1 hunks)
  • packages/taro-platform-harmony/package.json (1 hunks)
  • packages/taro-platform-jd/package.json (1 hunks)
  • packages/taro-platform-qq/package.json (1 hunks)
  • packages/taro-platform-swan/package.json (1 hunks)
  • packages/taro-platform-tt/package.json (1 hunks)
  • packages/taro-platform-weapp/package.json (1 hunks)
  • packages/taro-plugin-generator/package.json (1 hunks)
  • packages/taro-plugin-html/package.json (1 hunks)
  • packages/taro-plugin-http/package.json (1 hunks)
  • packages/taro-plugin-inject/package.json (1 hunks)
  • packages/taro-plugin-mini-ci/package.json (1 hunks)
  • packages/taro-plugin-react-devtools/package.json (1 hunks)
  • packages/taro-plugin-vue-devtools/package.json (1 hunks)
  • packages/taro-react/package.json (1 hunks)
  • packages/taro-rn-runner/package.json (1 hunks)
  • packages/taro-rn-style-transformer/package.json (1 hunks)
  • packages/taro-rn-supporter/package.json (1 hunks)
  • packages/taro-rn-transformer/package.json (1 hunks)
  • packages/taro-rn/package.json (1 hunks)
  • packages/taro-router-rn/package.json (1 hunks)
  • packages/taro-router/package.json (1 hunks)
  • packages/taro-runner-utils/package.json (1 hunks)
  • packages/taro-runtime-rn/package.json (1 hunks)
  • packages/taro-runtime/package.json (1 hunks)
  • packages/taro-service/package.json (1 hunks)
  • packages/taro-transformer-wx/package.json (1 hunks)
  • packages/taro-vite-runner/package.json (1 hunks)
  • packages/taro-webpack5-prebundle/package.json (1 hunks)
  • packages/taro-webpack5-runner/package.json (1 hunks)
  • packages/taro-with-weapp/package.json (1 hunks)
  • packages/taro/package.json (1 hunks)
  • packages/taroize/package.json (1 hunks)
✅ Files skipped from review due to trivial changes (19)
  • packages/eslint-config-taro/package.json
  • packages/taro-service/package.json
  • packages/taro-webpack5-prebundle/package.json
  • packages/taro-api/package.json
  • packages/eslint-plugin-taro/package.json
  • packages/stylelint-taro-rn/package.json
  • packages/taro-with-weapp/package.json
  • packages/taro-platform-alipay/package.json
  • packages/taro-h5/package.json
  • package.json
  • packages/taro-webpack5-runner/package.json
  • packages/babel-preset-taro/package.json
  • packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json
  • packages/taro-rn-transformer/package.json
  • packages/taroize/package.json
  • packages/css-to-react-native/package.json
  • packages/taro-platform-harmony-hybrid/package.json
  • packages/taro-platform-h5/package.json
  • packages/taro-components-react/package.json
🚧 Files skipped from review as they are similar to previous changes (64)
  • npm/darwin-arm64/package.json
  • packages/babel-plugin-transform-solid-jsx/package.json
  • packages/rollup-plugin-copy/package.json
  • npm/win32-x64-msvc/package.json
  • packages/taro-runtime/package.json
  • npm/darwin-x64/package.json
  • packages/taro-components-library-vue3/package.json
  • packages/taro-extend/package.json
  • packages/taro-router/package.json
  • packages/taro-components-library-solid/package.json
  • packages/jest-helper/package.json
  • packages/taro-rn-supporter/package.json
  • packages/taro-plugin-generator/package.json
  • packages/taro-platform-qq/package.json
  • packages/taro-components-library-react/package.json
  • packages/taro-loader/package.json
  • packages/shared/package.json
  • packages/taro-helper/package.json
  • packages/postcss-plugin-constparse/package.json
  • packages/taro-cli/package.json
  • packages/taro-plugin-react-devtools/package.json
  • npm/linux-x64-gnu/package.json
  • packages/taro-framework-vue3/package.json
  • packages/taro-framework-react/package.json
  • packages/taro-plugin-http/package.json
  • packages/taro-platform-tt/package.json
  • packages/taro-vite-runner/package.json
  • packages/taro-components-advanced/package.json
  • packages/postcss-html-transform/package.json
  • packages/taro-rn/package.json
  • packages/taro-router-rn/package.json
  • packages/taro-runner-utils/package.json
  • packages/taro-plugin-vue-devtools/package.json
  • packages/taro-cli-convertor/package.json
  • packages/taro-transformer-wx/package.json
  • crates/native_binding/package.json
  • packages/taro-components/package.json
  • packages/taro-plugin-html/package.json
  • packages/taro-framework-solid/package.json
  • packages/taro-platform-jd/package.json
  • packages/taro-react/package.json
  • packages/taro-rn-runner/package.json
  • packages/taro-plugin-inject/package.json
  • packages/taro-runtime-rn/package.json
  • packages/postcss-unit-transform/package.json
  • packages/taro/package.json
  • packages/taro-platform-harmony-cpp/package.json
  • packages/taro-plugin-mini-ci/package.json
  • packages/taro-platform-ascf/package.json
  • npm/linux-x64-musl/package.json
  • packages/taro-components-rn/package.json
  • packages/taro-rn-style-transformer/package.json
  • packages/create-app/package.json
  • packages/babel-plugin-transform-taroapi/package.json
  • packages/stylelint-taro/package.json
  • packages/taro-platform-weapp/package.json
  • packages/taro-platform-swan/package.json
  • packages/taro-platform-harmony/package.json
  • packages/taro-components-advanced/src/components/water-flow/flow-section.ts
  • packages/stylelint-config-taro-rn/package.json
  • packages/postcss-pxtransform/package.json
  • packages/taro-components-advanced/src/components/water-flow/water-flow.ts
  • packages/taro-components-advanced/src/components/water-flow/root.ts
  • packages/taro-components-advanced/src/components/water-flow/section.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (14)
  • GitHub Check: Build Rust Binding / stable - x86_64-unknown-linux-musl
  • GitHub Check: Build Rust WASM / stable - wasm32-wasi
  • GitHub Check: Build Rust Binding / stable - x86_64-unknown-linux-gnu
  • GitHub Check: Build Rust Binding / stable - x86_64-pc-windows-msvc
  • GitHub Check: Build Rust Binding / stable - x86_64-unknown-linux-musl
  • GitHub Check: Build Rust Binding / stable - x86_64-pc-windows-msvc
  • GitHub Check: Build Rust Binding / stable - x86_64-unknown-linux-gnu
  • GitHub Check: Build Rust Binding / stable - x86_64-apple-darwin
  • GitHub Check: Build Rust WASM / stable - wasm32-wasi
  • GitHub Check: Build Rust Binding / stable - aarch64-apple-darwin
  • GitHub Check: Build Rust Binding / stable - x86_64-apple-darwin
  • GitHub Check: Build Rust Binding / stable - x86_64-unknown-linux-gnu
  • GitHub Check: Build Rust Binding / stable - x86_64-pc-windows-msvc
  • GitHub Check: Build Rust WASM / stable - wasm32-wasi
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/waterflow

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@Single-Dancer Single-Dancer added this to the 4.1.4 milestone Jul 11, 2025
@coderabbitai coderabbitai bot requested review from luckyadam and tutuxxx July 11, 2025 08:45
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

♻️ Duplicate comments (8)
packages/taro-router/package.json (1)

3-3: 同上:版本号同步检查
此处与其它包保持一致即可。

packages/taro-platform-weapp/package.json (1)

3-3: 同上:版本号同步检查

packages/taro-extend/package.json (1)

3-3: 同上:版本号同步检查

packages/postcss-plugin-constparse/package.json (1)

3-3: 同上:版本号同步检查

packages/taro-platform-jd/package.json (1)

3-3: 同前:请核实 4.1.4-beta.9 版本在 Registry 中可用且与其余包一致

packages/taro-platform-qq/package.json (1)

3-3: 同前:请核实 4.1.4-beta.9 版本在 Registry 中可用且与其余包一致

packages/taro-platform-h5/package.json (1)

3-3: 同前:请核实 4.1.4-beta.9 版本在 Registry 中可用且与其余包一致

packages/taro-plugin-vue-devtools/package.json (1)

3-3: 同前:请核实 4.1.4-beta.9 版本在 Registry 中可用且与其余包一致

🧹 Nitpick comments (2)
packages/taro-webpack5-runner/package.json (1)

3-3: Webpack runner 版本已对齐,但请确认 peer 依赖警告

peer 中固定 webpack: "5.91.0",若用户工程版本不一致将出现 warning。可考虑放宽为 ^5.91.0

packages/postcss-pxtransform/package.json (1)

3-3: 版本号更新 OK,但请同步文档
README 与官网插件列表若包含版本示例,需要同步更新为 4.1.4-beta.9,避免用户混淆。

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0dace86 and e23dfb9.

📒 Files selected for processing (83)
  • crates/native_binding/package.json (1 hunks)
  • npm/darwin-arm64/package.json (1 hunks)
  • npm/darwin-x64/package.json (1 hunks)
  • npm/linux-x64-gnu/package.json (1 hunks)
  • npm/linux-x64-musl/package.json (1 hunks)
  • npm/win32-x64-msvc/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json (1 hunks)
  • packages/babel-plugin-transform-solid-jsx/package.json (1 hunks)
  • packages/babel-plugin-transform-taroapi/package.json (1 hunks)
  • packages/babel-preset-taro/package.json (1 hunks)
  • packages/create-app/package.json (1 hunks)
  • packages/css-to-react-native/package.json (1 hunks)
  • packages/eslint-config-taro/package.json (1 hunks)
  • packages/eslint-plugin-taro/package.json (1 hunks)
  • packages/jest-helper/package.json (1 hunks)
  • packages/postcss-html-transform/package.json (1 hunks)
  • packages/postcss-plugin-constparse/package.json (1 hunks)
  • packages/postcss-pxtransform/package.json (1 hunks)
  • packages/postcss-unit-transform/package.json (1 hunks)
  • packages/rollup-plugin-copy/package.json (1 hunks)
  • packages/shared/package.json (1 hunks)
  • packages/stylelint-config-taro-rn/package.json (1 hunks)
  • packages/stylelint-taro-rn/package.json (1 hunks)
  • packages/stylelint-taro/package.json (1 hunks)
  • packages/taro-api/package.json (1 hunks)
  • packages/taro-cli-convertor/package.json (1 hunks)
  • packages/taro-cli/package.json (1 hunks)
  • packages/taro-components-advanced/package.json (1 hunks)
  • packages/taro-components-advanced/src/components/water-flow/flow-section.ts (2 hunks)
  • packages/taro-components-advanced/src/components/water-flow/root.ts (13 hunks)
  • packages/taro-components-advanced/src/components/water-flow/section.ts (8 hunks)
  • packages/taro-components-advanced/src/components/water-flow/water-flow.ts (4 hunks)
  • packages/taro-components-library-react/package.json (1 hunks)
  • packages/taro-components-library-solid/package.json (1 hunks)
  • packages/taro-components-library-vue3/package.json (1 hunks)
  • packages/taro-components-react/package.json (1 hunks)
  • packages/taro-components-rn/package.json (1 hunks)
  • packages/taro-components/package.json (1 hunks)
  • packages/taro-extend/package.json (1 hunks)
  • packages/taro-framework-react/package.json (1 hunks)
  • packages/taro-framework-solid/package.json (1 hunks)
  • packages/taro-framework-vue3/package.json (1 hunks)
  • packages/taro-h5/package.json (1 hunks)
  • packages/taro-helper/package.json (1 hunks)
  • packages/taro-loader/package.json (1 hunks)
  • packages/taro-platform-alipay/package.json (1 hunks)
  • packages/taro-platform-ascf/package.json (1 hunks)
  • packages/taro-platform-h5/package.json (1 hunks)
  • packages/taro-platform-harmony-cpp/package.json (1 hunks)
  • packages/taro-platform-harmony-hybrid/package.json (1 hunks)
  • packages/taro-platform-harmony/package.json (1 hunks)
  • packages/taro-platform-jd/package.json (1 hunks)
  • packages/taro-platform-qq/package.json (1 hunks)
  • packages/taro-platform-swan/package.json (1 hunks)
  • packages/taro-platform-tt/package.json (1 hunks)
  • packages/taro-platform-weapp/package.json (1 hunks)
  • packages/taro-plugin-generator/package.json (1 hunks)
  • packages/taro-plugin-html/package.json (1 hunks)
  • packages/taro-plugin-http/package.json (1 hunks)
  • packages/taro-plugin-inject/package.json (1 hunks)
  • packages/taro-plugin-mini-ci/package.json (1 hunks)
  • packages/taro-plugin-react-devtools/package.json (1 hunks)
  • packages/taro-plugin-vue-devtools/package.json (1 hunks)
  • packages/taro-react/package.json (1 hunks)
  • packages/taro-rn-runner/package.json (1 hunks)
  • packages/taro-rn-style-transformer/package.json (1 hunks)
  • packages/taro-rn-supporter/package.json (1 hunks)
  • packages/taro-rn-transformer/package.json (1 hunks)
  • packages/taro-rn/package.json (1 hunks)
  • packages/taro-router-rn/package.json (1 hunks)
  • packages/taro-router/package.json (1 hunks)
  • packages/taro-runner-utils/package.json (1 hunks)
  • packages/taro-runtime-rn/package.json (1 hunks)
  • packages/taro-runtime/package.json (1 hunks)
  • packages/taro-service/package.json (1 hunks)
  • packages/taro-transformer-wx/package.json (1 hunks)
  • packages/taro-vite-runner/package.json (1 hunks)
  • packages/taro-webpack5-prebundle/package.json (1 hunks)
  • packages/taro-webpack5-runner/package.json (1 hunks)
  • packages/taro-with-weapp/package.json (1 hunks)
  • packages/taro/package.json (1 hunks)
  • packages/taroize/package.json (1 hunks)
🧰 Additional context used
🧠 Learnings (49)
📓 Common learnings
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 water-flow 组件中,getRectSizeSync 函数如果找不到指定的节点并且重试次数用尽,会一直处于 pending 状态而不是抛出错误,因为它在 retryTimes <= 0 时直接返回而不 resolve 或 reject Promise。应该使用 Promise.race 添加超时机制来解决这个问题。
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 water-flow 组件中,getRectSizeSync 函数如果找不到指定的节点,会一直处于 pending 状态而不是抛出错误。在这种情况下,应该使用 Promise.race 添加超时机制,而不是仅依赖 try/catch 来处理错误。
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
npm/darwin-arm64/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
npm/win32-x64-msvc/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/babel-preset-taro/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-loader/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-plugin-react-devtools/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-framework-react/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-router-rn/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taroize/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-rn-style-transformer/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-rn-runner/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-components-library-solid/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-platform-tt/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-rn-transformer/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-runner-utils/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-api/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-react/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-components/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-router/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/shared/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-components-rn/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-components-library-react/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
npm/darwin-x64/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/jest-helper/package.json (2)
Learnt from: ianzone
PR: NervJS/taro#17842
File: packages/jest-helper/tsconfig.json:9-9
Timestamp: 2025-06-23T00:09:31.233Z
Learning: 在 jest-helper 包中,src 目录下没有 __tests__ 测试目录,只包含 resolver.ts、sequencer.ts 和 snapshot 目录。不要假设包中存在测试目录结构。
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-platform-harmony/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-h5/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-runtime-rn/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-rn-supporter/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-extend/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/eslint-config-taro/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
npm/linux-x64-gnu/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/babel-plugin-transform-taroapi/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-platform-harmony-hybrid/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-rn/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
crates/native_binding/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/postcss-unit-transform/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-components-react/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-cli/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/stylelint-taro/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-runtime/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-webpack5-prebundle/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-helper/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-with-weapp/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-webpack5-runner/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-vite-runner/package.json (1)
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-components-advanced/src/components/water-flow/water-flow.ts (3)
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 water-flow 组件中,getRectSizeSync 函数如果找不到指定的节点并且重试次数用尽,会一直处于 pending 状态而不是抛出错误,因为它在 retryTimes <= 0 时直接返回而不 resolve 或 reject Promise。应该使用 Promise.race 添加超时机制来解决这个问题。
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 water-flow 组件中,getRectSizeSync 函数如果找不到指定的节点,会一直处于 pending 状态而不是抛出错误。在这种情况下,应该使用 Promise.race 添加超时机制,而不是仅依赖 try/catch 来处理错误。
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
packages/taro-components-advanced/src/components/water-flow/root.ts (3)
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 getRectSizeSync 函数中,如果找不到指定的节点,函数会一直处于 pending 状态而不是抛出错误。在这种情况下,使用 try/catch 处理不够充分,需要添加超时处理如 Promise.race 来避免无限等待。
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 water-flow 组件中,getRectSizeSync 函数如果找不到指定的节点并且重试次数用尽,会一直处于 pending 状态而不是抛出错误,因为它在 retryTimes <= 0 时直接返回而不 resolve 或 reject Promise。应该使用 Promise.race 添加超时机制来解决这个问题。
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 water-flow 组件中,getRectSizeSync 函数如果找不到指定的节点,会一直处于 pending 状态而不是抛出错误。在这种情况下,应该使用 Promise.race 添加超时机制,而不是仅依赖 try/catch 来处理错误。
🧬 Code Graph Analysis (1)
packages/taro-components-advanced/src/components/water-flow/root.ts (3)
packages/taro-components-advanced/src/components/water-flow/interface.ts (2)
  • WaterFlowProps (13-34)
  • BaseProps (7-11)
packages/taro-components-advanced/src/utils/dom.ts (1)
  • getRectSizeSync (20-35)
packages/taro-components-advanced/src/components/water-flow/utils.ts (1)
  • isSameRenderRange (26-28)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Build Rust Binding / stable - x86_64-unknown-linux-gnu
  • GitHub Check: Build Rust Binding / stable - aarch64-apple-darwin
  • GitHub Check: Build Rust WASM / stable - wasm32-wasi
  • GitHub Check: Build Rust Binding / stable - x86_64-pc-windows-msvc
  • GitHub Check: Build Rust Binding / stable - x86_64-apple-darwin
🔇 Additional comments (75)
packages/taro-runtime/package.json (1)

3-3: 版本号更新一致,LGTM

仅元数据调整,无其他风险点。

packages/taro-react/package.json (1)

3-3: 版本号同步正确

无业务逻辑改动,可直接合并。

packages/taro-helper/package.json (1)

3-3: 版本号 bump 符合预期

保持与其它包一致,👍

packages/taro-service/package.json (1)

3-3: 版本号同步正确

确认依赖仍指向 workspace:*,无需额外调整。

packages/taro-webpack5-prebundle/package.json (1)

3-3: 版本号已同步升级,变更无风险
仅更新至 4.1.4-beta.9,其他字段保持不变,符合统一版本策略。

packages/taro-loader/package.json (1)

3-3: 版本号升级一致性良好
无额外改动,符合 monorepo 版本对齐要求。

packages/taro-rn-style-transformer/package.json (1)

3-3: 版本号更新符合发布流程
仅版本号变更,对功能无影响。

packages/taro-rn-transformer/package.json (1)

3-3: 版本号同步 OK
保持依赖与其他包一致,暂无其他问题。

packages/taro-plugin-generator/package.json (1)

3-3: 版本号调整确认无误
简单版本提升,代码与配置均未受影响。

packages/taro-plugin-react-devtools/package.json (1)

3-3: 版本号 bump ✔

与主版本保持一致,暂无其他风险。仍建议运行同样的全局检查脚本,防止遗漏。

packages/taro-rn-runner/package.json (1)

3-3: RN Runner 版本同步 OK

仅版本提升,无额外 side-effect。注意在 CI 中验证依赖锁文件是否也已重生成。

packages/taro-api/package.json (1)

3-3: API 包版本更新正常

保持与 runtime 等包的 peer range 一致即可,当前使用 workspace:* 兼容 β 版号,确认无冲突。

packages/taro-components/package.json (1)

3-3: 组件库版本号同步到 β.9 ✅

无其他改动;发布前请确保生成产物与 CDN 缓存策略匹配。

packages/taro-transformer-wx/package.json (1)

3-3: 确认所有包版本已同步更新
已在仓库中所有 package.json 文件中搜索,未检索到旧版本号 4.1.3,版本号已统一更新为 4.1.4-beta.9

packages/taro-runner-utils/package.json (1)

3-3: 版本号已同步升级至 4.1.4-beta.9,保持 Monorepo 一致性 👍
无其他元数据变动,可直接合并。

packages/babel-preset-taro/package.json (1)

3-3: 仅 bump 版本号到 4.1.4-beta.9,改动简单可靠 👍
发布流程注意同时推送带有 beta tag 的 npm 包。

packages/shared/package.json (1)

3-3: 版本号一致性更新确认 ✅
无依赖或脚本改动,风险极低。

packages/taro-components-library-vue3/package.json (1)

3-3: Vue3 组件库版本已对齐,OK
发布时请确保 private: true 的设置不会影响内部依赖安装。

packages/taro-components-library-react/package.json (1)

3-3: React 组件库版本同步完成 👍
无其它变动,可安全合并。

packages/taroize/package.json (1)

3-3: 工作区所有包版本已统一

已验证根目录(package.json)和 packages/ 目录下所有子包的版本均为 4.1.4-beta.9,符合预期。示例工程(examples/)和测试用例目录中的 package.json 与发布流程无关,可忽略。

packages/taro-platform-harmony/package.json (1)

3-3: 版本号升级 LGTM
无其他元数据变动,符合统一版本策略。

packages/jest-helper/package.json (1)

3-3: 版本号升级 LGTM
测试辅助包随主版本同步,变更可接受。

npm/darwin-x64/package.json (1)

4-4: 原生绑定版本同步正确
平台二进制包的版本已对齐,总体无风险。

packages/taro-framework-vue3/package.json (1)

3-3: Vue3 框架插件版本已更新
与其它包保持一致,变更通过。

packages/taro-plugin-http/package.json (1)

3-3: 确认锁文件和发布流程同步更新

版本号已提升为 4.1.4-beta.9,改动本身没有问题。但请确保:

  1. 根级 lockfile(如 pnpm-lock.yaml)已执行 pnpm -r install 并提交。
  2. CI/CD 发布脚本已覆盖 beta 版本号,避免出现 publish 失败或 tag 不一致。
packages/taro-plugin-html/package.json (1)

3-3: 确保版本一致性与锁文件同步

同样版本号 bump,请确认已运行全局安装并提交最新 lockfile,防止工作区引用仍指向旧版本。

packages/taro-cli-convertor/package.json (1)

3-3: 版本号更新 OK,请同步更新依赖锁文件

建议在合并前执行一次全仓库安装并提交 lockfile,以保证 CI 可复现。

packages/taro-plugin-inject/package.json (1)

3-3: 版本号提升已就绪,检查发布脚本

由于采用 beta 版本,请验证 npm publish 流程是否带有 --tag beta,避免默认 latest 通道被污染。

packages/taro-plugin-mini-ci/package.json (1)

3-3: 保持版本一致并刷新 lockfile

请确认所有插件包已统一至 4.1.4-beta.9,且 lockfile 无遗漏更新。

packages/postcss-html-transform/package.json (1)

3-3: 版本号已提升到 4.1.4-beta.9,发布前请同步锁文件与变更日志
改动仅涉及 version 字段,符合统一升级策略。请确认已:

  1. 运行 pnpm install 以刷新 lockfile;
  2. 在对应 changelog / changeset 中记录该版本变更。
packages/taro-platform-swan/package.json (1)

3-3: 版本号更新一致性 OK
无其他改动,建议检查 workspace 依赖与此版本是否保持同步,并更新 changelog。

packages/taro-platform-alipay/package.json (1)

3-3: 仅更新版本号,已符合整体发布流程
发布前请确保:
• 相关依赖包也已升级到 4.1.4-beta.9;
• 变更日志中有对应记录。

packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json (1)

3-3: 版本号同步完成
同样建议确认 lockfile 与 peerDependencies 没有遗漏升级,并补充 release note。

packages/taro-components-library-solid/package.json (1)

3-3: Solid 组件库版本号已对齐
请检查:

  1. 该包引用的 workspace 依赖版本是否一致;
  2. 发布脚本 rollup 输出路径无破坏性变更。
packages/babel-plugin-transform-solid-jsx/package.json (1)

4-4: 版本号已提升至 4.1.4-beta.9
符合本次整体版本同步策略,未发现其他问题。

npm/darwin-arm64/package.json (1)

4-4: 版本号已提升至 4.1.4-beta.9
平台绑定包同步升级正常,未发现其他问题。

npm/win32-x64-msvc/package.json (1)

4-4: 版本号已提升至 4.1.4-beta.9
与其他平台包一致,暂无额外风险。

packages/rollup-plugin-copy/package.json (1)

3-3: 版本号已提升至 4.1.4-beta.9
工具插件版本同步无误。

packages/taro-platform-harmony-hybrid/package.json (1)

3-3: 版本号已提升至 4.1.4-beta.9
依赖仍使用 workspace:*,版本联动正常。

package.json (1)

3-3: 版本号升级 OK,但请同步核对发布流程

4.1.4-beta.9 与脚本 "version:release" 中的 ${npm_package_version} 协同工作没有问题。不过,beta 版请确保:

  1. changelog 已同步更新;
  2. 发布到 npm 时加 "next" 或自定义 dist-tag,避免覆盖最新稳定版;
  3. 其它子包均已 bump 到同一版本(可执行 pnpm m ls --depth -1 | grep 4.1.3 快速排查)。
packages/taro-vite-runner/package.json (1)

3-3: 一致性版本更新 👍

子包版本与根包保持一致,便于 monorepo 统一发布,暂无其他问题。

packages/taro-components-advanced/package.json (1)

3-3: 注意 peerDependencies 的波段要求

peerDependencies 使用 workspace:~,实际解析后会锁到 4.1.x。升级到 4.1.4-beta.9 时仍满足范围,但若后续进入 4.2.0,记得把 ~ 调整为 ^ 或显式范围,以免安装警告。

packages/taro-with-weapp/package.json (1)

3-3: 版本号同步通过
暂无额外风险。

packages/stylelint-taro-rn/package.json (1)

3-3: 请同步更新变更记录并验证发布流程

版本号已 bump 至 4.1.4-beta.9,但仓库内并未看到对应的 CHANGELOG / RELEASE NOTE 更新,也未看到 CI 发布配置的调整。请确认:

  1. packages/stylelint-taro-rn/CHANGELOG.md 是否同步添加了该版本条目;
  2. pnpm-workspace 或 CI 发布脚本是否已包含 beta 版本通道的正确 tag/publish 逻辑。

避免因元数据不一致导致后续发包失败或信息缺失。

packages/eslint-plugin-taro/package.json (1)

3-3: 确保 peer 依赖范围仍然覆盖新版本

eslint-plugin-taro 自身版本已升级,但其 peerDependencies 仍锁定 eslint^8。请确认:

  • 新增代码(若有)未引入 ESLint 9+ API;
  • 后续发布是否需要同步扩大 peer 版本范围或添加 engines.eslint 说明。

避免安装时出现 peer warning。

npm/linux-x64-gnu/package.json (1)

4-4: 原生绑定包版本号 bump 看起来正确

仅修改版本号,其他字段保持不变,符合 monorepo 统一发布策略。

packages/taro-cli/package.json (1)

3-3: CLI 版本提升后请检查依赖矩阵

@tarojs/cli 升级到 4.1.4-beta.9,但其内部 @tarojs/plugin-* 依赖仍为 workspace:*。如果这些插件未同步 bump,CLI 在发布到 npm 时会解析成未发布版本号,导致安装失败。请确认:

  • 所有 workspace 依赖均已完成同版本 beta 发布;
  • npm publish --access public 流程已验证通过。

如需脚本辅助校验,可反馈。

packages/taro/package.json (1)

3-3: 核心包版本号已对齐,注意 peer 生态兼容

taro 主包升级为 beta 版本后,下游框架(如 taro-components、plugin-platform-*)的 peer 依赖需保持同步,否则用户在安装混合版本时会遇到 npm/PNPM 冲突。建议:

  • 运行一次 workspace 安装并执行 pnpm -r exec npm ls @tarojs/taro 确认版本树统一;
  • 在发布说明中提醒社区 beta 版本的兼容范围。

其余字段无异常。

packages/create-app/package.json (1)

3-3: 确认无遗留 4.1.3 版本号
已使用以下命令在所有 package.json 中搜索,未发现任何 "version": "4.1.3"

rg --line-number --fixed-strings '"version": "4.1.3"' --glob 'package.json'

版本号均已同步至 4.1.4-beta.9,可以放心发布。

packages/taro-components-rn/package.json (1)

3-3: 版本号更新一致,OK

packages/taro-components-react/package.json (1)

3-3: 版本号更新一致,OK

packages/taro-framework-react/package.json (1)

3-3: 版本号更新一致,OK

packages/css-to-react-native/package.json (1)

4-4: 版本号更新一致,OK

packages/eslint-config-taro/package.json (1)

3-3: 版本号已同步升级,符合统一发布流程
仅调整 version 字段,无其它元数据改动,符合 monorepo 版本对齐策略。

packages/taro-rn/package.json (1)

3-3: 版本号 bump OK,但请确认 peer/workspace 依赖是否同步发布
@tarojs/taro-rndependenciespeerDependencies 中大量依赖使用 workspace:* 占位,发布到 NPM 时需确保对应包已发布 4.1.4-beta.9,否则安装解析会失败。

packages/taro-rn-supporter/package.json (1)

3-3: 版本号升级无问题
单行改动,未触及脚本或依赖,风险极低。

packages/stylelint-taro/package.json (1)

3-3: 版本号同步 OK,但注意与 stylelint 主版本兼容性
peerDependencies 锁定 stylelint ^16,如后续发布正式版请再验证 beta 版本对 Stylelint 插件 API 的兼容情况。

packages/taro-platform-harmony-cpp/package.json (1)

3-3: 版本号更新通过
无其他调整,构建脚本与依赖保持不变。

packages/babel-plugin-transform-taroapi/package.json (1)

3-3: 版本号提升已同步,但请补充变更记录
已将版本提升至 4.1.4-beta.9,实现一致性没问题。不过请确认:

  1. CHANGELOG.md 是否同步记录此 beta 版本的变更。
  2. 若包内代码存在硬编码版本常量,也需一并更新。
npm/linux-x64-musl/package.json (1)

3-3: 确认二进制产物是否已完成打包与上传
升级版本后需确保新的 .node 二进制已通过 CI 构建并推送至 npm,否则用户安装时会出现缺失文件错误。

packages/stylelint-config-taro-rn/package.json (1)

3-3: 版本号一致性良好
此处仅修改版本号,与工作区其他包保持一致,无其他问题。

packages/postcss-unit-transform/package.json (1)

3-3: 确认发布流程与依赖兼容性

  1. 发布脚本/CI 是否已更新以推送 4.1.4-beta.9
  2. peerDependencies.postcss 仍为 ^8,请确认与新版本无冲突。
packages/taro-framework-solid/package.json (1)

3-3: 版本更新符合预期

版本号从 4.1.3 更新到 4.1.4-beta.9,与整个 monorepo 的版本升级保持一致。

crates/native_binding/package.json (1)

3-3: 版本更新符合预期

版本号从 4.1.3 更新到 4.1.4-beta.9,与整个 monorepo 的版本升级保持一致。

packages/taro-router-rn/package.json (1)

3-3: 版本更新符合预期

版本号从 4.1.3 更新到 4.1.4-beta.9,与整个 monorepo 的版本升级保持一致。

packages/taro-platform-ascf/package.json (1)

3-3: 版本更新符合预期

版本号从 4.1.3 更新到 4.1.4-beta.9,与整个 monorepo 的版本升级保持一致。

packages/taro-components-advanced/src/components/water-flow/root.ts (4)

12-13: 代码格式优化

类型定义的格式化改进,提高了代码的可读性。


127-129: 滚动高度更新优化

updateScrollHeight 调用限制在向下滚动时执行,这是一个合理的性能优化。


214-214: 数组操作格式化改进

使用展开运算符的格式化改进,代码更加清晰。

Also applies to: 223-223, 268-268


171-171: 代码格式和表达式优化

这些格式化改进和表达式优化提高了代码的可读性和一致性。

Also applies to: 173-173, 245-245, 342-342, 420-420, 422-422

packages/taro-components-advanced/src/components/water-flow/flow-section.ts (1)

87-87: 优化 key 属性使用 node.id

将 FlowItemContainer 的 key 从复合字符串简化为直接使用 node.id 是一个很好的改进,这样既减少了计算复杂度,又确保了 key 的唯一性,有利于 React 的 diff 算法优化。

Also applies to: 104-104

packages/taro-components-advanced/src/components/water-flow/water-flow.ts (2)

60-72: 简化 handleScroll 函数实现

handleScroll 函数的重构使代码更加简洁易读,逻辑保持不变但可读性有所提升。


76-101: 增强动态节点管理

新增的动态节点管理逻辑很好地处理了子节点数量变化的情况:

  1. 添加了 null 检查确保组件稳定性
  2. 当现有 section 的子节点数量增加时,会调用 pushNodes 方法动态添加节点
  3. 与 section.ts 中的新方法配合良好

这个改进让 water-flow 组件能够更好地处理动态内容变化。

packages/taro-components-advanced/src/components/water-flow/section.ts (2)

276-297: 新增动态节点管理方法

新增的 pushNodepushNodes 方法很好地模块化了节点添加逻辑:

  1. pushNode 方法封装了单个节点的创建和注册过程
  2. pushNodes 方法支持批量添加节点,并正确更新了相关状态
  3. 重置 lowerThresholdScrollTop 和更新节点位置确保了状态一致性

这些方法与 water-flow.ts 中的动态节点管理完美配合,是很好的架构改进。


172-172: 重构节点创建逻辑

将直接创建节点的代码重构为使用 pushNode 方法,提高了代码的复用性和一致性。

@@ -1,6 +1,6 @@
{
"name": "@tarojs/runtime-rn",
"version": "4.1.3",
"version": "4.1.4-beta.9",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

版本号已同步至 4.1.4-beta.9,建议全仓一致性校验

单点修改看起来无误,但请确认所有 workspace 包都已统一 bump 到相同版本,避免发布/依赖错位。


🏁 Script executed:

#!/bin/bash
# 检查所有 package.json 中的 version 字段是否均为 4.1.4-beta.9
fd -t f -I -E node_modules -E dist -g package.json | \
  xargs jq -r 'select(.version) | .name + ":" + .version' | \
  grep -v '4.1.4-beta.9' || echo "🎉 所有 package.json 版本一致"

Length of output: 584


请统一所有 workspace 包版本至 4.1.4-beta.9

我们在仓库中发现以下 packages 的 package.json 版本仍为旧版,需要一并 bump 到 4.1.4-beta.9,避免发布/依赖错位:

  • blended-apart: 1.0.0
  • blended-basic: 1.0.0
  • blend-taro-component: 1.0.0
  • blended-taro-component-vue3: 1.0.0
  • build-weapp-plugin: 1.0.0
  • custom-tabbar-react: 1.0.0
  • custom-tabbar-vue3: 1.0.0
  • external-prebundle: 0.1.0
  • mini-program-example: 1.0.0
  • MiniSplitChunksPlugin: 1.0.0
  • blend-taro-native-component: 1.0.0
  • swiper-effect: 1.0.0
  • taro-list: 1.0.0
  • weapp-independent-subpackage: 1.0.0
  • @tarojs/tests: 4.0.0-alpha.4

请统一修改以上 package.json 的 "version" 字段至 "4.1.4-beta.9" 并再次校验。

🤖 Prompt for AI Agents
In packages/taro-runtime-rn/package.json at line 3, update the "version" field
to "4.1.4-beta.9". Additionally, locate the package.json files for all listed
workspace packages and change their "version" fields to "4.1.4-beta.9" to ensure
consistency across the repository. Verify all changes before committing.

@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-h5",
"version": "4.1.3",
"version": "4.1.4-beta.9",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

版本号已升级至 4.1.4-beta.9,一致性请再自检一次

本行纯粹是版本号 bump,逻辑无虞。不过请确认:

  1. monorepo 内所有 package.json 均已同步到同一版本;
  2. CHANGELOG 与 Git 标签已对应更新,便于后续 release。

🏁 Script executed:

#!/bin/bash
# 期望:不应再出现旧版本号 4.1.3
rg -n '"version": "4\.1\.3"' --glob '*package.json'

Length of output: 53


🏁 Script executed:

#!/bin/bash

# 1. 检查 monorepo 中所有 package.json 的 version 字段,确认是否都已升级到 4.1.4-beta.9
rg -n '"version":' --glob '*package.json'

# 2. 检查 CHANGELOG.md 中是否包含新版本号,确保 release 说明已更新
rg -n '4\.1\.4-beta\.9' --glob 'CHANGELOG.md'

# 3. 检查 Git 标签中是否存在 v4.1.4-beta.9,确保发布标签已打好
git tag -l "v4.1.4-beta.9"

Length of output: 6947


版本已统一至 4.1.4-beta.9,需补充 CHANGELOG 与 Git Tag

  • monorepo 主包(packages/*)下所有 package.json 均已更新为 4.1.4-beta.9
  • 示例项目(examples/*)和测试目录(tests/package.json)保留各自初始版本,可按需忽略
  • 未在 CHANGELOG.md 中看到 “4.1.4-beta.9” 发布条目,请补充更新
  • 尚未创建 v4.1.4-beta.9 Git Tag,请在发布前打好标签
🤖 Prompt for AI Agents
In packages/taro-h5/package.json at line 3, the version has been updated to
4.1.4-beta.9 but the CHANGELOG.md file lacks an entry for this version and the
corresponding Git tag v4.1.4-beta.9 has not been created. Add a detailed release
entry for version 4.1.4-beta.9 in the CHANGELOG.md file and create the Git tag
v4.1.4-beta.9 before publishing.

@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-platform-tt",
"version": "4.1.3",
"version": "4.1.4-beta.9",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

确认新版本号已发布并与 Monorepo 全局保持一致

仅调整了 version 字段,但仍需验证:

  1. 4.1.4-beta.9 是否已在 npm Registry 预发布,避免后续 pnpm publish -r 失败。
  2. 所有 workspace 包的 version 字段是否一致,防止出现混合版本。

可使用下列脚本快速校验:


🏁 Script executed:

#!/bin/bash
# 列出非 4.1.4-beta.9 的 package.json
fd -E node_modules -E dist package.json | xargs jq -r '.name+"@"+.version' | grep -v '4.1.4-beta.9' || echo "全部一致 ✅"

# 示例:检查核心包是否已发布
npm view @tarojs/taro@4.1.4-beta.9 version

Length of output: 1316


请统一 Monorepo 中的所有包版本

  1. 4.1.4-beta.9 已在 npm Registry 预发布
  2. 脚本检测到以下 workspace 包的 version4.1.4-beta.9 不一致,请确认并统一:
    • blended-apart@1.0.0
    • blended-basic@1.0.0
    • blend-taro-component@1.0.0 (出现两次)
    • blended-taro-component-vue3@1.0.0 (出现两次)
    • build-weapp-plugin@1.0.0
    • custom-tabbar-react@1.0.0
    • custom-tabbar-vue3@1.0.0
    • external-prebundle@0.1.0
    • mini-program-example@1.0.0
    • MiniSplitChunksPlugin@1.0.0
    • blend-taro-native-component@1.0.0
    • swiper-effect@1.0.0
    • taro-list@1.0.0
    • weapp-independent-subpackage@1.0.0
    • test@ (缺少版本号)
  3. 注意:脚本运行时出现了 parse error: Invalid literal at line 2459, column 32,请检查相关 package.json 是否为有效 JSON

请将上述包的 version 字段统一更新为 4.1.4-beta.9,或排除不需同步版本的目录,再次执行校验脚本确认无误。

🤖 Prompt for AI Agents
In packages/taro-platform-tt/package.json at line 3, the version is set to
"4.1.4-beta.9" but other workspace packages have inconsistent versions. Update
the version fields of all listed workspace packages to "4.1.4-beta.9" to unify
the Monorepo versions. Also, verify that all package.json files are valid JSON
to avoid parse errors, and rerun the version check script to confirm
consistency.

Comment on lines +354 to +355
public updateScrollHeight() {
this.setStateIn('scrollHeight', this.sectionRange[this.sectionRange.length - 1][1])
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

方法可见性变更

updateScrollHeight 方法从 private 改为 public,这可能是为了支持外部调用。请确认这个变更是有意的,并且考虑是否需要在文档中说明此方法的用途。


🏁 Script executed:

#!/bin/bash
# 检查 updateScrollHeight 方法在其他文件中的使用情况
rg -A 3 -B 3 "updateScrollHeight" --type ts

Length of output: 1357


确认 updateScrollHeight 可见性变更意图

经过检索,updateScrollHeight 仅在 packages/taro-components-advanced/src/components/water-flow/root.ts 内部调用,未在类外部被引用。请根据实际需求采取以下之一:

  • 若无对外调用需求,将方法可见性改回 private,以保持封装性。
  • 若确实需要对外暴露,请在组件文档中补充该方法的用途及使用示例。

定位:

  • 文件:packages/taro-components-advanced/src/components/water-flow/root.ts
  • 行号:约 354
🤖 Prompt for AI Agents
In packages/taro-components-advanced/src/components/water-flow/root.ts around
lines 354-355, the method updateScrollHeight is currently public but only used
internally within the class. To maintain proper encapsulation, change its
visibility modifier from public to private unless there is a clear external
usage requirement. If external access is needed, keep it public and add
documentation explaining its purpose and usage examples.

Comment on lines +107 to +112
getRectSizeSync(`#${id}`, 100).then(({ width = windowWidth, height = windowHeight }) => {
this.setStateIn('containerSize', {
width,
height,
})
})
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

潜在的 Promise 挂起问题

根据之前的学习记录,getRectSizeSync 函数在找不到指定节点时可能会一直处于 pending 状态而不是抛出错误。建议添加超时处理机制。

-    getRectSizeSync(`#${id}`, 100).then(({ width = windowWidth, height = windowHeight }) => {
-      this.setStateIn('containerSize', {
-        width,
-        height,
-      })
-    })
+    Promise.race([
+      getRectSizeSync(`#${id}`, 100),
+      new Promise((_, reject) => setTimeout(() => reject(new Error('获取容器尺寸超时')), 5000))
+    ]).then(({ width = windowWidth, height = windowHeight }) => {
+      this.setStateIn('containerSize', {
+        width,
+        height,
+      })
+    }).catch(() => {
+      // 使用默认尺寸作为降级方案
+      this.setStateIn('containerSize', {
+        width: windowWidth,
+        height: windowHeight,
+      })
+    })
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
getRectSizeSync(`#${id}`, 100).then(({ width = windowWidth, height = windowHeight }) => {
this.setStateIn('containerSize', {
width,
height,
})
})
Promise.race([
getRectSizeSync(`#${id}`, 100),
new Promise((_, reject) =>
setTimeout(() => reject(new Error('获取容器尺寸超时')), 5000)
)
])
.then(({ width = windowWidth, height = windowHeight }) => {
this.setStateIn('containerSize', {
width,
height,
})
})
.catch(() => {
// 使用默认尺寸作为降级方案
this.setStateIn('containerSize', {
width: windowWidth,
height: windowHeight,
})
})
🤖 Prompt for AI Agents
In packages/taro-components-advanced/src/components/water-flow/root.ts around
lines 107 to 112, the call to getRectSizeSync may remain pending indefinitely if
the specified node is not found. To fix this, implement a timeout mechanism that
rejects the promise if it does not resolve within a reasonable time. Wrap the
getRectSizeSync call with a timeout promise and handle the timeout rejection to
avoid hanging promises.

Comment on lines +132 to 139
this.sub('scrollOffset', () => {
const sectionSize = this.sections.length
const lastSection = this.sections[sectionSize - 1]
// 最后一个分组的每一列最后一行都已经完成了布局计算,那么这个时候的总高度应该是准确的
if (
lastSection.columnMap.every(
(column) => column[column.length - 1].getState().layouted
)
) {
if (lastSection.columnMap.every((column) => column[column.length - 1].getState().layouted)) {
this.setLowerThresholdScrollTop()
lowerThresholdScrollTopDisposer()
}
})
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

重复的订阅逻辑

这段代码似乎与上面的订阅逻辑重复,都是监听 scrollOffset 变化。建议合并这两个订阅或者明确区分它们的职责。

-    this.sub('scrollOffset', () => {
-      const sectionSize = this.sections.length
-      const lastSection = this.sections[sectionSize - 1]
-      // 最后一个分组的每一列最后一行都已经完成了布局计算,那么这个时候的总高度应该是准确的
-      if (lastSection.columnMap.every((column) => column[column.length - 1].getState().layouted)) {
-        this.setLowerThresholdScrollTop()
-      }
-    })

将此逻辑合并到上面的 scrollOffset 订阅中:

     this.sub('scrollOffset', () => {
       this.setStateIn('renderRange', this.getSectionRenderRange())
       this.handleReachThreshold()
       if (this.getState().scrollDirection === 'forward') {
         this.updateScrollHeight()
       }
+      
+      const sectionSize = this.sections.length
+      const lastSection = this.sections[sectionSize - 1]
+      // 最后一个分组的每一列最后一行都已经完成了布局计算,那么这个时候的总高度应该是准确的
+      if (lastSection && lastSection.columnMap.every((column) => column[column.length - 1].getState().layouted)) {
+        this.setLowerThresholdScrollTop()
+      }
     })
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
this.sub('scrollOffset', () => {
const sectionSize = this.sections.length
const lastSection = this.sections[sectionSize - 1]
// 最后一个分组的每一列最后一行都已经完成了布局计算,那么这个时候的总高度应该是准确的
if (
lastSection.columnMap.every(
(column) => column[column.length - 1].getState().layouted
)
) {
if (lastSection.columnMap.every((column) => column[column.length - 1].getState().layouted)) {
this.setLowerThresholdScrollTop()
lowerThresholdScrollTopDisposer()
}
})
🤖 Prompt for AI Agents
In packages/taro-components-advanced/src/components/water-flow/root.ts around
lines 132 to 139, there are duplicate subscriptions to the 'scrollOffset' event.
To fix this, locate the other 'scrollOffset' subscription above these lines and
merge the logic from this block into that one, ensuring both functionalities are
handled together. Remove this redundant subscription after merging to avoid
duplicate event handling.

Comment on lines +153 to +154
const { height: sectionHeight, scrollTop: sectionScrollTop } = this.getState()
return sectionScrollTop <= scrollBoundaryEnd && sectionScrollTop + sectionHeight >= scrollBoundaryStart
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

边界条件修改需要验证

isInRange 中的严格不等式改为包含等式(< 改为 <=> 改为 >=)可能会影响可见性判断逻辑。请确认这个改动是否会影响边界情况下的渲染行为。

运行以下脚本来检查这个改动的影响:


🏁 Script executed:

#!/bin/bash
# 描述:检查 isInRange 边界条件改动的影响
# 预期:确认边界条件改动不会引起渲染问题

# 搜索 isInRange 的使用位置
rg -A 5 -B 5 "isInRange" --type ts

# 搜索相关的滚动边界计算
rg -A 3 -B 3 "scrollBoundary" --type ts

Length of output: 11608


修复 isInRange 边界条件不一致的问题

在 section.ts 中,isInRange 使用了 <=/>=(包含等式),而在 node.ts 中仍然是 </>(严格不等式),二者逻辑不一致,会在元素恰好贴合视图边界时误判“可见”。重叠判断通常应使用严格不等式,只在有实际重叠时才算可见。

请统一二者的边界条件(建议均改为 <>),并更新相关测试用例。

• 需要修改的位置:

  • packages/taro-components-advanced/src/components/water-flow/section.ts:153-154

建议改为:

- return sectionScrollTop <= scrollBoundaryEnd && sectionScrollTop + sectionHeight >= scrollBoundaryStart
+ return sectionScrollTop < scrollBoundaryEnd  && sectionScrollTop + sectionHeight >  scrollBoundaryStart
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const { height: sectionHeight, scrollTop: sectionScrollTop } = this.getState()
return sectionScrollTop <= scrollBoundaryEnd && sectionScrollTop + sectionHeight >= scrollBoundaryStart
const { height: sectionHeight, scrollTop: sectionScrollTop } = this.getState()
return sectionScrollTop < scrollBoundaryEnd && sectionScrollTop + sectionHeight > scrollBoundaryStart
🤖 Prompt for AI Agents
In packages/taro-components-advanced/src/components/water-flow/section.ts at
lines 153-154, the isInRange function uses inclusive boundary checks (<= and >=)
which conflicts with the strict inequality checks (< and >) used in node.ts,
causing inconsistent visibility detection at exact boundaries. Update the
condition to use strict inequalities (< and >) for both comparisons to ensure
consistent and correct overlap detection. Also, revise any related test cases to
reflect this boundary condition change.

Copy link

codecov bot commented Jul 11, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 54.98%. Comparing base (6d7c79f) to head (488e169).
Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main   #17987   +/-   ##
=======================================
  Coverage   54.98%   54.98%           
=======================================
  Files         417      417           
  Lines       21693    21693           
  Branches     5341     5342    +1     
=======================================
  Hits        11928    11928           
+ Misses       8122     8093   -29     
- Partials     1643     1672   +29     
Flag Coverage Δ
taro-cli 72.42% <ø> (ø)
taro-runtime 59.87% <ø> (ø)
taro-web 53.19% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

see 14 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Single-Dancer Single-Dancer removed the request for review from luckyadam July 11, 2025 09:29
@coderabbitai coderabbitai bot requested review from luckyadam and tutuxxx July 11, 2025 10:46
@Single-Dancer Single-Dancer merged commit e7f1611 into main Jul 11, 2025
43 of 44 checks passed
@Single-Dancer Single-Dancer deleted the feat/waterflow branch July 11, 2025 11:08
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.

2 participants