sveltejs | Unsorted

Telegram-канал sveltejs - Svelte [svɛlt] - All about Svelte JavaScript framework

1680

📮Тест на вход придёт в личку 💥Без никнейма не впустим Правила: https://t.me/sveltejs/764 Доки: https://svelte.dev/docs Паблик: @sveltejs_public Вакансии: @sveltejs_jobs VK: https://vk.com/sveltejs_ru Админы: @stalkerg, @misharodshtein

Subscribe to a channel

Svelte [svɛlt] - All about Svelte JavaScript framework

    import { invalidate } from '$app/navigation';
...
function handleRemoveClick() {
const response = fetch(`/${title}/${item.id}/${key}`, {method: 'DELETE'})
invalidate('data:item');
};

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

И зависимые элементы перересуются

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Нет, если у тебя он приходит из load функции, то её нужно перезапустить через invalidate

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

А где мне его вызывать? В action нельзя же.

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

item из компонента, не из load непосредственно.

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

А item из load

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Так, а value это откуда? Из load функции?

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

И если страницу обновить, то он появляется.

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Короче, после нажатия кнопки Save данные в бэк отправляются, но форма не обновляется. Конкретно поле с файлом.

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Вот, ну и соответственно есть метод load для этой формы в +page.server.js.

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

updateItem у меня ложит в lib/server/database.js, он сначала собирает все и оптправляет файлы, а потом остальные поля формы. Как-то вот так...

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Есть в общем вот такая вот формочка, из которой данные отправляются во внешний API:

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Я думаю пасажир - это вообще в целом костыль)) Ну че имеем то и насилуем))

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Там просто Phusion Passenger - такое ощещение что он со свелтом не в ладах

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Инфовыжималку разрабатываете?

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Ну ок, я так пробовал. вот к примеру handleRemoveClick...

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Она заново отработает, отправит запрос на твой api (не разбирался особо что она делает) и вернёт новые данные

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Если нет — значит нужно запустить то, что загружает данные о файлике после успешной отправки формы из ehance функции

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Короче, если файлик загружается через load функцию и его нужно отобразить после загрузки — invaidate

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

https://kit.svelte.dev/docs/modules#$app-navigation-invalidate

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Это из item

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

value я получаю на основе данных, что лежат в item.

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

input с загруженным файлом я вывожу вот так:

    <input
name={key}
autocomplete="off"
type={type}
/>
{#if value}
{value}
<button on:click|preventDefault={handleRemoveClick}>Remove File</button>
{/if}

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

export async function load({ params, depends }) {
depends('data:item')

const item = await getItem(params.project, params.id);
return { item };
}

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

export async function updateItem(project, id, data) {
const files = Object.fromEntries(
Object.entries(data).filter(
([key, value]) => value instanceof File && value.size !== 0
)
);

for (let key in files)
{
const data = new FormData()
data.append('file', files[key]);
await deleteFile(project, id, key);
await uploadFile(project, id, key, data);
}

const fields = Object.fromEntries(
Object.entries(data).filter(
([key, value]) => !(value instanceof File)
)
);

const options = {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(fields)
}
const response = await fetch(`${BACKEND_URL}/${project}/${id}`, options);
if (response.status !== 200) throw error(response.status);

const item = await response.json();
return item;
}

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Всё это дело происходит через action, конкретно update, вот как он выглядит:

export const actions = {
update: async ({ request, params }) => {
const formData = await request.formData();
const updateData = Object.fromEntries(Array.from(formData.entries()).filter(entry => entry[1] !== ""));
const item = await updateItem(params.project, params.id, updateData);
throw redirect(303, `/${params.project}/${params.id}`);
},
};

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Есть проблема с обновлением формы, сейчас попробую объяснить...

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

Надо создать файл entry.cjs а в нем контент:

async function loadApp() {
const { app } = await import("./app.js"); // this is your normal entry file - (index.js, main.js, app.mjs etc.)
}
loadApp()

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

UserScrpts подойдет или прям расширение нормальное?

Читать полностью…

Svelte [svɛlt] - All about Svelte JavaScript framework

нужен JS программист, задача: написать расширение на google chrome для выжимки информации с сайта.

за подробностями в ЛС.

Читать полностью…
Subscribe to a channel