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

现象描述
快应用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

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4478396/blog/5610270