writable } from "svelte/store";
const __config = JSON.parse(GM_getValue("config", JSON.stringify({
style: {
code: {
theme: "tomorrow", fira_code: false
}
}
})));
В котором, в __config читается значение config из хранилища, или создаётся дефолный объект с настройками(в данном случае, последний).
Объявляю на экспорт две переменные:
export const code_theme = writable(__config.style.code.theme);
export const firacode = writable(false);
В App.svelte импортирую:
import { code_theme, firacode } from "./stores.js";
И прикручиваю биндом значение firacode в чекбокс:
<label>Fira Code<input type="checkbox" bind:checked={ $firacode }></label>
Затем, на странице кликаю в этот чекбокс и в консоль получаю Uncaught TypeError: R.set is not a function, при этом, в хранилище, изменяется значение __config.style.code.fira_code, так как размещённый там же для теста:
window.addEventListener("beforeunload", () => {
localStorage.setItem("fira_code", __config.style.code.fira_code);
});
Сохраняет в локалсторадж true по ключу fira_code.
Собираю проект в расширении __TamperMonkey__, чтобы разместить на странице виджет.
Подскажите пожалуйста, почему возникает ошибка и каким образом сохраняется занчение в __config.style.code.fira_code, если на экспорт объявление выглядит так export const firacode = writable(false);?
а без $ напрямую не пробовал дёргать методы?
очевидно что это либо не весь код и гдето есть сохранение в конфиг, либо у вас закешировалась в браузере какая-то версия бандла в которой это поведение было и вызывало ошибку. я хз какое еще может быть обьяснение
Обсуждают сегодня