【HarmonyOS】輕量級智能穿戴應用如何在頁面中實現數據傳遞與全局變量的使用

【關鍵詞】

輕量級智能穿戴、LiteWearable、數據傳遞、全局變量

 

【問題描述】

開發輕量級智能穿戴LiteWearable應用,在app.js中定義全局變量,在頁面中通過this.$app.$def.xxx獲取時,報錯TypeError: Cannot read property '$def' of undefined

 

【問題分析】

經確認,LiteWearable暫不支持$def,只要是輕量級設備類型應用開發,均不支持$def,所以無法與其他手機等設備類型一樣,在app.js中定義與獲取全局變量

 

【問題解決與示例代碼】

方式一:若您需要在多個頁面獲取全局變量,可將變量進行數據存儲或文件存儲,參考文檔如下:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/lite-wearable-data-storage-0000001222269657

cke_1082.png

方式二:若您只需要在少數幾個頁面中進行數據傳遞,您可在頁面路由跳轉時,通過router.replace將參數傳遞到目標頁面,輕量級智能穿戴應用開發與其他設備類型不同,不能使用router.getParams方式獲取參數,傳遞和獲取參數方式參考如下步驟

以index頁面跳轉chartPage頁面,加載chart組件爲例:

步驟1:index頁面給組件綁定點擊事件goToChart方法,跳轉chartPage頁面,並將chart組件中需要的參數傳遞過去

cke_2198.png

步驟2:chartPage.js文件中定義相同名稱的變量:xAxisMin、xAxisMax、yAxisMin、yAxisMax,定義初始值,定義與頁面傳參時相同名稱變量,會將傳入參數值自動賦值到chartPage中定義參數;

定義chart組件顯示的參數lineOps,定義爲初始值即可

cke_2727.png

chartPage.html

cke_4894.png

步驟3:chartPage.js中onInit方法中直接使用xAxisMin、xAxisMax、yAxisMin、yAxisMax變量,重新賦值lineOps,刷新圖表,這樣就實現index頁面傳參到chartPage,並刷新圖表數據了。

cke_6412.png

 

【相關文檔】

 

 欲瞭解更多更全技術文章,歡迎訪問https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章