@Comnox

Почему watcher не реактивен при создании компонента?

Использовал watcher для работы со строкой поиска и вывода отфильтрованного списка, все работает, но решил записывать значение строки поиска в localStorage и поле перезагрузки, значение подставляется в строку поиска, но watcher не срабатывает и отсутствует реактивность, пытался использовать immediate: true, но не помогло:

const seachCityName = ref(localStorage.getItem("seachNameFromLS") || ""); // беру значение из localStorage

сам watcher:

watch(
    seachCityName,
      () => {
        localStorage.setItem("seachNameFromLS", seachCityName.value); // записываю значение из localStorage
        // тут метод который фильтрует список по значению seachCityName из записывает в $store
    },
  { immediate: true }
);
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 2
Aetae
@Aetae Куратор тега Vue.js
Тлен
1. Всё работает:
2. Лучше писать так:
watch(
  seachCityName,
  (value) => {
    localStorage.setItem("seachNameFromLS", value); 
    // ...
  },
  { immediate: true }
);

3. Оборачивайте код в <code></code>, когда задаёте вопрос. Это нормы приличия.
Ответ написан
nbrylevv
@nbrylevv
Front-end разработчик
watch вообще не отрабатывает? А покажите кусок шаблона, где используете seachCityName
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы