問題描述
快應用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()時間非常短,設置語言屬於比較耗時的操作,頁面來不及渲染。
解決辦法
在頁面初始化調用設置語言接口時候加上時延,代碼如下:
onInit() {
setTimeout(() => {
this.$app.$def.changeLocaleConfiguration()
}, 100);
}
總結:
不建議在頁面onInit中調用耗時的操作,如果必須要用需要加上時延。
欲了解更多詳情,請參見:
快應用開發指導文檔:https://developer.huawei.com/consumer/cn/doc/development/quickApp-Guides/quickapp-whitepaper
多語言支持指導文檔:
原文鏈接:
https://developer.huawei.com/consumer/cn/forum/topic/0204393662842000121?fid=18
作者:鼓樓趙又廷
