Динамический импорт компонента – в Svelte 5 отсутствует геттерJavascript

Форум по Javascript
Ответить
Anonymous
 Динамический импорт компонента – в Svelte 5 отсутствует геттер

Сообщение Anonymous »

Я хотел динамически импортировать компонент, чтобы создать что-то вроде блога в Svelte 5. Очень похоже на этот подход в Svelte 3 или 4:
https://github.com/ScriptRaccoon/blog-s ... t-approach /tree/main
У меня есть этот файл +page.server.js

Код: Выделить всё

export async function load() {
const posts_paths = Object.keys(import.meta.glob('/src/routes/posts_projects/*/+page.svelte'));

const unsorted_posts = await Promise.all(
posts_paths.map(async (path) => {
const link = path.split('/').at(-2) ?? '';
const component = await import(`../../routes/posts_projects/${link}/+page.svelte`);
console.log(component);
const { title, date } = component;
return { title, date, link };
})
);
return { unsorted_posts };
}
Однако, когда я регистрирую компонент, там нет ни названия, ни даты. Это выглядит так:

Код: Выделить всё

{
default: [Function: _page] {
render: [Function (anonymous)],
[Symbol(filename)]: 'src/routes/posts_projects/temperature_anomaly/+page.svelte'
},
[Symbol(Symbol.toStringTag)]: 'Module'
}

Когда я клонирую репозиторий сверху и регистрирую компонент, я получаю следующее:

Код: Выделить всё

{
default: { render: [Function: render], '$$render': [Function: $$render] },
title: [Getter],
date: [Getter],
[Symbol(Symbol.toStringTag)]: 'Module'
}
< /code>
Post-компонент, в моем приложении Svelte-5, выглядит следующим образом: < /p>

import Post from '../Post.svelte';

let date = new Date('2025-01-01');
let title = 'test tile';


content...
Думаю, я здесь упускаю что-то очевидное. Но у кого-нибудь есть идея?
обновить
Хорошо, я немного запутался. В исходном примере используется и некоторые переменные экспортируются следующим образом:

Код: Выделить всё

import Post from "../Post.svelte";
export let title = "My first blog post";
export let date = new Date("2023-01-22");

Я ошибочно думал, что это будет svelte-код, но я думаю, что это просто экспорт этих переменных. Так что простое добавление оператора экспорта сделало свою работу. Моя вина

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-svelte-5
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»