Я создаю гибридное приложение с использованием Nuxt JS, Cordova и Cordova Native Storage (по сути, localalstorage).
Я сохраняю объект в собственном хранилище и извлекаю его при загрузке страницы в пределах mounted()
однако, я продолжаю получать следующую ошибку, независимо от того, что я пытаюсь получить доступ к данным объекта:
[Object Object]
Мой JS в компоненте, который загружается на каждой странице:
import { mapState } from 'vuex';
export default {
mounted () {
document.addEventListener("deviceready", this.getNativeStorage(), false)
},
methods: {
getNativeStorage() {
window.NativeStorage.getItem("beacon_native_storage", (value) => {
var parseObj = JSON.parse(value)
alert(parseObj)
alert(parseObj.localStorage)
}, (error) => {
alert(`Error: ${error.code}-${error.exception}`)
});
},
refreshNativeStorage(currentState) {
window.NativeStorage.initWithSuiteName("beacon");
window.NativeStorage.setItem("beacon_native_storage", JSON.stringify(currentState), () => {
alert('Stored currentState')
}, (error) => {
alert(`Error: ${error.code}`)
});
}
},
computed: {
state () {
return this.$store.state
}
},
watch: {
state: {
handler: function (val, Oldval) {
setTimeout(function () {
this.refreshNativeStorage(this.state)
}.bind(this), 10)
},
deep: true
}
}
}
И объект из Vuex выглядит следующим образом:
export const state = () => ({
pageTitle: 'App name',
dataUrls: [],
intervalData: [],
settings: [],
experimentalFeatures: [],
customAlertSeen: false,
user: null,
account: null,
payloadOutput: null
})
Каждый раз, когда запускается getItem
, alert(parseObj)
всегда возвращает [Object Object] rather than for instance, the data. And if I try returning
parseObj.localStorage.pageTitle which is clearly defined in
store / localStorage.js it returns
undefined`
Где я тут ошибаюсь?