У меня есть приложение Svelte & Sapper, в котором я использую доступное для записи хранилище Svelte для установки переменной с начальным значением пустой строки:
import { writable } from 'svelte/store';
export let dbLeaveYear = writable('');
В моем файле Index.svelte
я импортирую это и затем вычисляем значение этой переменной и устанавливаем его (я делаю это в функции onMount
`` `Index.svelte, если это важно):
<script>
import {dbLeaveYear} from "../stores/store.js"
function getCurrentLeaveYear() {
const today = new Date();
const currYear = today.getFullYear();
const twoDigitYear = currYear.toString().slice(-2);
const cutoffDate = `${twoDigitYear}-04-01`
const result = compareAsc(today, new Date(cutoffDate));
if (result === -1) {
$dbLeaveYear = `${parseInt(twoDigitYear, 10) - 1}${twoDigitYear}`;
} else {
$dbLeaveYear = `${twoDigitYear}${parseInt(twoDigitYear, 10) + 1}`;
}
}
onMount(() => {
getCurrentLeaveYear();
});
</script>
У меня есть дочерний компонент отрисовано в Index.svelte
<Calendar />
Внутри дочернего компонента Calendar Я импортирую переменную и пытаюсь получить к ней доступ для выполнения преобразования, но я получаю ошибки, что она по-прежнему пуста - она выглядит не выбирая присвоение из Index.svelte
:
<script>
import {dbLeaveYear} from "../stores/store.js"
const calStart = $dbLeaveYear.slice(0, 2)
</script>
Однако, если я использую значение в элементе HTML в том же дочернем компоненте Календаря с <p>{$dbLeaveYear}</p>
, оно заполняется значением из расчета в Index.svelte
.
Как получить доступ к переменной хранилища внутри тега <script>
дочернего компонента? Это вообще возможно? Я пробовал ассигновать в onMount
, я пробовал присваивать в функции - кажется, ничего не работает, и всегда говорится, что $dbLeaveYear
- пустая строка.
Мне нужно, чтобы значение было Dynami c как значение года отпуска.