Pull Request已成功合入, 合并人@openharmony_ci
(感谢 fanwangah 的贡献)感谢提交 Pull Requests!
Thanks for submitting a pull request.


已审视,无问题


【AI-Review】【一般】【软件设计】【其他软件设计问题】API 文档与代码实现不一致:Restart 方法已从文档移除但代码仍保留
● 问题:本次变更将 Restart 方法从 API 表中删除,但实际代码中 Restart 方法仍然存在并可被调用:
src/NativeRestart.ts第 26 行:TurboModule Spec 接口中仍声明Restart(reason?: string): void;harmony/restart/src/main/ets/RNRestartTurboModule.ts:仍实现public Restart = this.restart;(作为 restart 的别名)
通过 src/index.tsx 的 export default RNRestart,RNRestart.Restart() 对用户仍可见可调用。
● 影响:文档与代码不一致。用户查阅 API 表时只能看到 restart 和 getReason 两个方法,但实际调用 RNRestart.Restart() 仍可正常工作。这会导致:1)用户阅读源码时发现未文档化的 API,产生困惑;2)文档无法准确反映模块对外暴露的完整接口,影响可维护性。
● 建议:二选一:
- 若
Restart已废弃,应在代码中同步移除NativeRestart.ts中的 Spec 声明和RNRestartTurboModule.ts中的public Restart = this.restart;实现; - 若保留
Restart用于向后兼容,应在 API 表中保留该行并标注"已废弃,推荐使用 restart"。


【AI-Review】【一般】【软件设计】【其他软件设计问题】API 文档与代码实现不一致:Restart 方法已从文档移除但代码仍保留
● 问题:本次变更将 Restart 方法从 API 表中删除,但实际代码中 Restart 方法仍然存在并可被调用:
src/NativeRestart.ts第 26 行:TurboModule Spec 接口中仍声明Restart(reason?: string): void;harmony/restart/src/main/ets/RNRestartTurboModule.ts:仍实现public Restart = this.restart;(作为 restart 的别名)
通过 src/index.tsx 的 export default RNRestart,RNRestart.Restart() 对用户仍可见可调用。
● 影响:文档与代码不一致。用户查阅 API 表时只能看到 restart 和 getReason 两个方法,但实际调用 RNRestart.Restart() 仍可正常工作。这会导致:1)用户阅读源码时发现未文档化的 API,产生困惑;2)文档无法准确反映模块对外暴露的完整接口,影响可维护性。
● 建议:二选一:
- 若
Restart已废弃,应在代码中同步移除NativeRestart.ts中的 Spec 声明和RNRestartTurboModule.ts中的public Restart = this.restart;实现; - 若保留
Restart用于向后兼容,应在 API 表中保留该行并标注"已废弃,推荐使用 restart"。


【AI-Review】【建议】【基础代码问题】【稳定性问题】getReason 示例缺少 Promise rejection 处理
● 问题:示例代码中 getReason 按钮的 onPress 使用 async 函数 await RNRestart.getReason(),但未添加 try-catch 错误处理。根据 harmony/restart/src/main/ets/RNRestartTurboModule.ts 中 getReason() 的实现,当静态字段 restartReason 为空(即未执行过 restart)时会执行 reject('reason is empty'),而 restartReason 初始值为空字符串 ''。
触发路径:用户首次进入 Demo(restartReason 初始为 '')→ 直接点击 getReason 按钮(未先点击 restart)→ getReason() 执行 reject('reason is empty') → await 抛出异常 → async 函数返回 rejected Promise → 无 catch 处理 → 产生未处理的 Promise rejection。
● 影响:在用户未先点击 restart 就点击 getReason 的场景下,会产生未处理的 Promise rejection,React Native 会输出警告日志,且按钮无任何反馈(setRestartReason 和 setState 均未执行),影响示例代码的健壮性。作为 README 中的参考示例,用户可能直接复制该模式到业务代码中。
● 建议:在 onPress 中添加 try-catch 处理 rejection 场景:
onPress={async () => {
try {
const reason = await RNRestart.getReason();
setRestartReason(reason);
setState(reason);
} catch (e) {
setRestartReason("");
setState("");
}
}}


changed this line on 458478d7 view diff detail
【AI-Review】【建议】【基础代码问题】【稳定性问题】getReason 示例缺少 Promise rejection 处理
● 问题:示例代码中 getReason 按钮的 onPress 使用 async 函数 await RNRestart.getReason(),但未添加 try-catch 错误处理。根据 harmony/restart/src/main/ets/RNRestartTurboModule.ts 中 getReason() 的实现,当静态字段 restartReason 为空(即未执行过 restart)时会执行 reject('reason is empty'),而 restartReason 初始值为空字符串 ''。
触发路径:用户首次进入 Demo(restartReason 初始为 '')→ 直接点击 getReason 按钮(未先点击 restart)→ getReason() 执行 reject('reason is empty') → await 抛出异常 → async 函数返回 rejected Promise → 无 catch 处理 → 产生未处理的 Promise rejection。
● 影响:在用户未先点击 restart 就点击 getReason 的场景下,会产生未处理的 Promise rejection,React Native 会输出警告日志,且按钮无任何反馈(setRestartReason 和 setState 均未执行),影响示例代码的健壮性。作为 README 中的参考示例,用户可能直接复制该模式到业务代码中。
● 建议:在 onPress 中添加 try-catch 处理 rejection 场景:
onPress={async () => {
try {
const reason = await RNRestart.getReason();
setRestartReason(reason);
setState(reason);
} catch (e) {
setRestartReason("");
setState("");
}
}}


changed this line on 458478d7 view diff detail
模板做了一些变更,后续的文档需要按照新的去更改
变更点:
- 版本号由0.4.1更新为0.4.2
- 顶部所属关系映射表,
三方库版本修改为三方库版本(npm地址),链接修改为原先npm地址的链接,同时删除npm地址字段 - 增加
源码地址字段,值为对应分支,并添加对应分支跳转链接
另外这些也一并修改下:
1.openahrmony-sig的链接修改为CPF-RN。
2.
3.部分库链接到usage-docs,迁移后相对路径不存在,应该使用完整路径。
例如:对于未发布到npm的旧版本,请参考安装指南安装tgz包。链接应该修改为 https://gitcode.com/CPF-RN/usage-docs/blob/master/zh-cn/tgz-usage.md
例如:> [!TIP] 如需使用直接链接源码,请参考直接链接源码说明。链接应该修改为 https://gitcode.com/CPF-RN/usage-docs/blob/master/zh-cn/link-source-code.md


感谢提交 Pull Requests!
Thanks for submitting a pull request.


首次触发
门禁构建开始,包含静态检查,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a9a311d64650f998b9cc8d4/runlist


代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a9a311d64650f998b9cc8d4/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | noPass | >>> |


部分构建失败,仅触发失败构建
门禁构建开始,包含静态检查,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a9a388a64650f998b9ff947/runlist


代码门禁通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a9a388a64650f998b9ff947/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | pass | >>> |


代码有更新,重置PR验证状态


感谢提交 Pull Requests!
Thanks for submitting a pull request.


本地或库上代码有更新,全量重新构建,重置所有关联PR的验证状态
门禁构建开始,包含静态检查,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a9a3ea564650f998ba276cc/runlist


代码门禁通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a9a3ea564650f998ba276cc/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | pass | >>> |


你因提交次数过多被限制提交,为保障上库效率、避免资源浪费,请先观看学习视频:https://dcp.openharmony.cn/workbench/video/videoDisplay


docs: update README document for 0.77 branch of react-native-restart library