HarmonyOS 鸿蒙Next 在主程序调用formProvider.updateForm(...) 会报错"formId" must be string

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 在主程序调用formProvider.updateForm(…) 会报错"formId" must be string

export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
this.newMethod(want);
}
private newMethod(want: Want) {
if ( want?.parameters?.params ) {
let formId: string = want.parameters[formInfo.FormParam.IDENTITY_KEY] as string;
  console.log(formId) //这里可以正常打印出获取的ID
AppStorage.setOrCreate(‘formId’, formId); //从页面获取ID后调用下面的方法也报同样的错误
formProvider.updateForm(formId,formBindingData.createFormBindingData({‘txt’:‘newmethod’}))
} //执行到updateForm就会报错:Error message:Parameter error. The type of “formId” must be string. Error code: 这里是空白,没有错误码
}

在模拟器里面调试的,真机因为有几个必须用的APP还没有适配next所以没有升级无法调试,所以无法确定是不是模拟器的锅。

查看API并没有明说formProvider.updateForm不能在主程序中使用,有没有大佬知道是什么情况?

1 回复

在HarmonyOS鸿蒙Next系统中,当你遇到在主程序中调用formProvider.updateForm(...)方法时报错提示“formId must be string”,这通常意味着传递给updateForm方法的formId参数类型不正确,不是预期的字符串类型。

要解决这个问题,请确保你传递给updateForm方法的formId是一个有效的字符串。这里有几个检查点:

  1. 检查formId的来源:确保formId是从合法途径获取的,比如从页面路由参数或全局状态管理中,并且其类型被正确声明和传递为字符串。

  2. 类型转换:如果formId是从其他类型(如数字或对象)转换而来,确保转换逻辑正确。例如,使用String(formId)或模板字符串`${formId}`进行转换。

  3. 调试输出:在调用updateForm之前,使用console.log(typeof formId, formId)打印formId的类型和值,确认其为字符串。

通过上述步骤,你应该能够定位并解决“formId must be string”的错误。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部