UI5从1.108升级到1.119后ResourceBundle报aArgs参数类型错误
UI5 1.119升级后ValueHelpDialog触发ResourceBundle参数类型报错问题
问题现象
将UI5从1.108版本升级至1.119版本后,打开sap.ui.comp.valuehelp.ValueHelpDialog值帮助对话框时,控制台会出现大量重复报错:
"value for parameter 'aArgs' is not of type array"
该报错来自sap/base/i18n/ResourceBundle模块,虽不影响对话框的正常功能,但会刷屏控制台,干扰开发调试。
根因分析
UI5 1.119版本对ResourceBundle的_formatValue函数做了实现变更,严格要求aArgs参数必须为undefined或数组类型。而现有代码中存在传入字符串、null作为该参数的情况,触发了类型校验报错。
注:OpenUI5仓库中已有类似问题反馈,但sap.ui.comp属于SAPUI5专有库,不在OpenUI5的维护范畴内。
解决办法
排查自定义代码中的ResourceBundle调用
遍历所有调用ResourceBundle.getText()等格式化方法的代码,修正参数传入方式:- 若原本传入单个字符串,改为将其放入数组中,例如:
错误写法:getResourceBundle().getText("myKey", "myValue")
正确写法:getResourceBundle().getText("myKey", ["myValue"]) - 若原本传入
null,改为传入undefined或空数组[]
- 若原本传入单个字符串,改为将其放入数组中,例如:
若报错来自sap.ui.comp库内部
- 登录SAP Support Portal,查询是否有针对该问题的补丁或更新版本
- 临时可通过浏览器控制台的错误过滤功能,屏蔽该类型报错(仅作为调试阶段的临时缓解方案,不建议长期使用)
内容的提问来源于stack exchange,提问作者eliash
相关产品推荐
相关产品推荐

