一、报错:A page configured in 'main_pages.json' must have one and only one '@Entry' decorator.
解决思路有两种:
(1)报错文件是页面文件:main_pages.json中声明的都是页面文件,页面文件需要一个入口文件,因此看看main_pages.json有没有声明报错文件的文件路径,或者报错文件有没有写'@Entry'注解;
(2)报错文件为自定义文件:如果报错文件不是页面文件,什么意思呢,就是在此文件中不需要写ArkTs或者ArkUi,例如我只定义某某接口或者某某class,其他的不写,由于我参照官方文档copy了一个工具类到自己的项目中,报了这个错,后面经排查是由于文件名过长,将文件名改短一点就好了。
代码如下:
二、报错:使用WebView引用htm时,htm中引入的js中的对象报错undefined
解决思路:
(1)htm本身能不能正常运行,如果不行先解决htm运行展示的问题,具体情况具体分析;
(2)在htm正常的情况下,参考这篇文章加速Web页面的访问-管理网页加载与浏览记录-ArkWeb(方舟Web)-应用框架 | 华为开发者联盟 (huawei.com)
三、报错:使用PersistentStorage.persistProp存取值的结果不一样
解决思路:
(1)确保传入的值存在,调试输出,根据官网文档给出的取值方法查看是否有输入;应用级变量的状态管理-ArkTS组件-ArkUI(方舟UI框架)-应用框架 | 华为开发者联盟 (huawei.com)
(2)将PersistentStorage.persistProp(key,value)写在进页面前,因为持久化操作需要在UI实例初始化成功后(即loadContent传入的回调被调用时)才可以被调用,早于该时机调用会导致持久化失败;
失败示例:写在了onclick事件中,导致值不一样;
正确示例:
进页面要先写这句话 首次存入后 重开APP再次进来 执行这句代码 系统判断PersistentStorage有值就会同步到appstorage中
在业务逻辑代码中,改变值,此时系统会判断PersistentStorage有值就会同步到appstorage中
取值
(3)如果还是没用,改用@ohos.data.preferences (用户首选项)就好了:通过用户首选项实现数据持久化-应用数据持久化-ArkData(方舟数据管理)-应用框架 | 华为开发者联盟 (huawei.com)