#javascript
#javascript
Вопрос:
как установить дату (сейчас) в localstorage один раз, не обновляя ее? Я хочу получить ее один раз, и это все, но все же я хочу иметь возможность использовать ее, потому что есть еще одна функция, которая зависит от этой захваченной даты, ключевая проблема заключается в том, что она продолжает обновлять, как ее остановить.
const currentDayChangeNumber = () => {
const now = new Date();
[...document.querySelectorAll('.day-number')].forEach(day => {
day.textContent = formatDayNumber(now);
incrementDayNumber(now);
});
// saving the now value to LS //
localStorage.setItem('date', `${now}`);
}
Комментарии:
1. Проверьте, не установлено ли оно уже, прежде чем устанавливать его. Кажется довольно простым
2. К вашему СВЕДЕНИЮ —
.querySelectorAll()
создает объект с.forEach()
помощью метода. Нет необходимости в[...document.querySelectorAll(...)]
гимнастике
Ответ №1:
localStorage.getItem
возвращает null
, когда ключ еще не существует в локальном хранилище (https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem ). Таким образом, вы можете просто проверить это условие перед обновлением значения.
if (localStorage.getItem('date') === null) {
localStorage.setItem('date', `${now}`);
}
В зависимости от дизайна остальной части вашего приложения вы также можете выполнить эту проверку перед вызовом currentDayChangeNumber
.
Комментарии:
1. проблема в том, что дата не является статической, она постоянно обновляется, я хочу сохранить этот текущий момент времени!!