Итак, я пытаюсь получить данные локального хранилища, когда Интернет подключен к сети, используя Vuejs. Мой стек приложений ToDo в Vuejs/Laravel/MySQL. По сути, я храню данные в localStorage, когда интернет есть в сети. Кроме того, я добавил все функции приложения ToDo с автономными возможностями, такими как добавление, удаление и редактирование элемента списка дел. Я не могу опубликовать данные локального хранилища в базе данных MySQL.
updateAllTodos() {
let data = { todos: this.todos };
if (navigator.onLine) {
axios.post(this.api + "/update_all", data).then((res) => {
localStorage.setItem("todos", JSON.stringify(this.todos));
});
} else {
JSON.parse(localStorage.getItem("todos", JSON.stringify(this.todos)));
}
},
Как я могу опубликовать данные localStorage, когда Интернет онлайн?
Решение проблемы
Вы можете справиться с этим (обновить статус onLine) с помощью прослушивателя событий и установить переменную true/false. Позже вы можете следить за свойством данных и делать что-то соответственно.
data() {
return {
isOnLine:navigator.onLine
}
},
mounted() {
window.addEventListener('online', () => {this.isOnLine = true});
window.addEventListener('offline', () => {this.isOnLine = false});
},
watch: {
onLine: function (val) {
if(this.isOnLine){
// make axios call here
}
},
}
Комментариев нет:
Отправить комментарий