华为鸿蒙应用开发的一些坑
以下所有坑均在DevEco Studio 6.0.0版本
1.2025年9月17日,使用DevEco Studio 6.0.0 版本的话,创建新应用的话,会有报错
ERR_PNPM_NO_MATCHING_VERSION hvigor-ohos-arkui-x-plugin@4.20.3
解决方法: 在项目根目录的hvigor/hvigor-config.json5
文件里修改这个版本号为 "@ohos/hvigor-ohos-arkui-x-plugin": "4.20.0"
即可
2.有些鸿蒙的专用包下载不了,需要配置IDE
的npm
下载源
MAC版本的路径如下
/Applications/DevEco-Studio.app/Contents/tools/node/bin
进到这个目录执行
npm config set registry=https://repo.harmonyos.com/npm
即可解决,这个貌似是改的全局的,记得改回来npm config set registry https://registry.npmjs.org/
3.不要使用组件导航(Navigation),这个我真要哭死,复制的官网代码,运行起来一片空白,代码编译没有报错,日志里也没有任何错误,我服了。顺便说一下,build
时没有报错不代表你的代码会按你的预期工作,很多时候还要看运行时的日志的。
4.IDE
里的CodeGenie
也不是索引的最新的文档,很多时候给出的代码是旧的,贴进IDE
里会报⚠️警告是常有的事,但是很多时候有参考价值。
5.半模态框bindsheet
目前的问题,就是无法设置背景颜色,如果你做了dark/light
主题切换,那么无法适配,如果你想用内容区的高度设置100%
,bindsheet
设置为height
为SheetSize.MEDIUM
但是内容区的内容没有超过半个屏幕的高度,会出现可以在bindsheet
里面滑动的情况,滑动就滑动嘛,可是你滑动到底部的时候,还会出现底部安全区域与内容区的背景颜色不一致的问题。
新发现:
bindsheet
放在页面顶层话,背景色是可以改变的,放在页面内组件的后面的话,可能会有无法设置背景颜色的问题。
如果你在一个组件绑定多个bindsheet
,那点击将无法打开bindsheet
6.bindsheet
逻辑判断显示不同的内容时,注意不要在关闭的时候改变逻辑,比如如下代码
@Builder
private buildSheet() {
if (this.currentSheetType === SheetType.ADD_EDIT) {
this.buildAddEditDialog()
} else if (this.currentSheetType === SheetType.DELETE_CONFIRM) {
this.buildDeleteConfirmDialog()
}
}
你在关闭的时候,赋值 this.currentSheetType = null
的时候,会导致bindsheet
关闭不了