1、如何设置DevEco Studio 的预览功能的屏幕像素值
A:通过预览器的New Profile功能,自己填写屏幕尺寸和DPI
2、预览功能使用过程中,可能无法使用帮助菜单压缩日志按钮收集日志
当打开多个工程并且同时预览时,此时点击帮助菜单上的压缩日志按钮,可能会出现日志文件被占用导致无法压缩的情况。此时右下角会出现压缩失败的提示:
A:关闭预览过的工程,或者重启IDE后先不要打开预览器,即可再次压缩收集日志。
3、预览告警“@Consume/@Link decorated property <propertyName> not initialized”
A:建议不要直接预览含有@Consume(或者@Link)装饰成员的子组件,通过预览父组件的形式来查看子组件的预览效果。
4、预览告警“There are properties not initialized”
A:预览页面/组件含有未初始化成功的成员变量,调用这些成员变量的属性/方法时会导致报错,预览白屏。可能导致该问题的典型原因有:
场景一:使用了AppStorage等方式设置的全局变量。
场景二:使用了router.getParams()获取路由参数。
请使用自定义Mock。
-
oh-package.json5中添加如下依赖。
"dependencies": { // 版本号需根据hvigor及SDK的配套关系进行修改 "@ohos/hamock": "1.0.0"}
-
预览页面中导入mock依赖。
import { MockSetup } from '@ohos/hamock';
-
设置mock数据。
@MockSetupmock(){ this.fruit = new Fruit("apple");}
场景一:使用了AppStorage等方式设置的全局变量,修改后的示例代码如下:
import { MockSetup } from '@ohos/hamock'; export default class Fruit{ public name: string; getName(): string{ return this.name; } constructor(name: string) { this.name = name; } }@Entry@Componentstruct GlobalData { @State fruit:Fruit = AppStorage.get("fruit") as Fruit; @MockSetup mock(){ this.fruit = new Fruit("apple"); } build() { Row() { Column() { Text(this.fruit.name) .fontSize(50) .fontWeight(FontWeight.Bold) } .width('100%') } .height('100%') }}
场景二:使用了路由参数,修改后的示例代码如下:
@Entry@Componentstruct Page { @State params: object = router.getParams(); @MockSetup mock(){ this.params = []; this.params["path"] = "path"; } build() { Row() { Column() { Text(this.params['path']) .fontSize(50) .fontWeight(FontWeight.Bold) } .width('100%') } .height('100%') }}
5、预览报错“Node service error detected. Reinstall DevEco Studio to fix the error”
A:
-
方案一:DevEco Studio内置文件被破坏,请重新安装DevEco Studio。
-
方案二:hosts中关于127.0.0.1的配置项有误,请检查hosts配置是否存在127.0.0.1 localhost的配置项。
-
Windows平台配置文件:C:\Windows\System32\drivers\etc\hosts。
-
Mac平台配置文件:/private/etc/hosts。
-
更多详情查看:文档中心