首页 > 其他分享 >【快应用】初始化页面时,调用configuration.setLocale()不生效

【快应用】初始化页面时,调用configuration.setLocale()不生效

时间:2022-12-16 16:13:43浏览次数:57  
标签:初始化 调用 setLocale changeLocaleConfiguration app configuration 页面

现象描述
快应用app.ux中定义了全局方法changeLocaleConfiguration,用于设置应用显示语言,在首页生命周期onInit中调用changeLocaleConfiguration(),实际已经触发了该方法,但是应用语言并未发生改变。
app.ux中代码:

changeLocaleConfiguration() {
this.localeObject = configuration.getLocale()
if (this.localeObject.language === 'zh') {
configuration.setLocale({
language: 'en',
countryOrRegion: 'US'
})
}
else {
configuration.setLocale({
language: 'zh',
countryOrRegion: 'CN'
})
}
}

首页的代码:

onInit() {
this.$app.$def.changeLocaleConfiguration()
}

 

问题分析
页面初始化时间比较短,但设置语言耗时比较长,导致页面来不及渲染。

 

解决方法

在页面初始化调用设置语言接口时候加上时延,代码如下:

onInit() {
setTimeout(() => {
this.$app.$def.changeLocaleConfiguration()
}, 100);
}

 

建议与总结
建议不要在onInit中调用耗时的操作,如果一定要调用,需要加上时延。

​欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

标签:初始化,调用,setLocale,changeLocaleConfiguration,app,configuration,页面
From: https://www.cnblogs.com/developer-huawei/p/16987619.html

相关文章