HarmonyOS 鸿蒙Next references 数据持久化 是否可直接存储 interface 类型数据
HarmonyOS 鸿蒙Next references 数据持久化 是否可直接存储 interface 类型数据
axios<UserModel, AxiosResponse<UserModel>, RequestModel>({
url: '', //`${constantRequest.BASE_URL}svipcard/auth/api/userLogin`,
method: 'post',
data: NetRequest.dataSignature(params)
}).then((res: AxiosResponse<UserModel>) => {
console.info('resQi', JSON.stringify(res), typeof (res))
const model: UserModel = res.data['data'];
preferencesTools.referencesSet('user',model);
}).catch((err: AxiosError) => {
console.info('errQi', err)
})
通过登录接口 存储接口返回数据到 model ,model为 interface UserModel 类型
referencesSet(key: string, obj: object | string | number | boolean | Array<number> | Array<string> | Array<boolean> | Uint8Array | bigint) {
preferences.getPreferences(getContext(this), ConstantCommon.PREFERENCES_NAME).then(preferences => {
preferences.put(key, obj, (err: BusinessError) => {
if (err) {
console.error("preferences set Qi'. code =" + err.code + ", message =" + err.message);
return;
}
console.info(`Succeeded in putting value of '${key}'.Qi`);
})
})
}
工具类 持久化 set 方法
referencesGet(key: string, defaultValue: preferences.ValueType) {
preferences.getPreferences(getContext(this), ConstantCommon.PREFERENCES_NAME).then(preferences => {
preferences.get(key, defaultValue)
.then(value => {
console.info('preferences get Qi', value)
return value;
})
})
}
工具类 持久化 get 方法
const userModel = preferencesTools.referencesGet(‘user’,model) 业务类 取出 存储的model
请问,如何把userModel 取出来即为 interface UserModel 类型 或者转为 UserModel 类型
更多关于HarmonyOS 鸿蒙Next references 数据持久化 是否可直接存储 interface 类型数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
建议转成json字符串后再进行存储
preferences不支持这种类型
更多关于HarmonyOS 鸿蒙Next references 数据持久化 是否可直接存储 interface 类型数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,数据持久化机制并不直接支持存储interface类型数据。HarmonyOS的数据持久化通常依赖于其提供的文件系统API或数据库解决方案,如SQLite或其他定制的存储引擎,这些存储机制要求数据能够被序列化或具有明确的存储格式。
Interface在Java或类似语言中是一种抽象类型,它定义了对象的行为但不包含具体实现。由于这种抽象性,interface类型的数据无法直接转换为可存储的格式,如字节流或数据库记录。
要在HarmonyOS中实现类似interface数据的持久化,通常需要将interface的实例转换为可存储的对象。这通常通过以下几种方式实现:
- 实现序列化接口:如果interface的实现类是可序列化的,可以将实现类实例进行序列化存储。
- 使用数据映射:将interface的关键行为和数据映射到具体的可存储数据结构上。
- 自定义存储格式:为interface定义一种自定义的存储格式,并在加载时重建interface的实例。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html