Обработка динамических форм в AstroHtml

Программисты Html
Ответить
Anonymous
 Обработка динамических форм в Astro

Сообщение Anonymous »

Я получил форму, которая содержит расширяемый массив элементов: < /p>
// or ingredient[0][name]
// neither works
< /code>
и действие обрабатывает форму: < /p>
export const server = {
addRecipe: defineAction({
accept: 'form',
input: z.object({
title: z.string().max(100),
// ...
ingredient: z.array(
z.object({
name: z.string(),
count: z.string(),
}),
)
}),
handler: async (input) => {
console.log(input);
< /code>
Введите журналы пустого массива в любое время: < /p>
{
title: '123',
...
ingredient: []
}
< /code>
Я ходил взад и вперед, пробуя разные вещи, но я не мог заставить ее работать с обработкой по умолчанию с помощью встроенного zod. Я знаю, что могу просто получить FormData, если я опускаю поле «Вход», но входные данные остаются необработанными: < /p>
{ name: 'ingredient[0][name]', value: '123' },
{ name: 'ingredient[0][count]', value: '123' },
< /code>
Я все еще должен просматривать имена здесь, чтобы получить желаемый результат. Для тех, кто ищет, не стесняйтесь прочитать эту часть документации немного больше: https://docs.astro.build/en/reference/m ... ccept-form и проверьте свойство преобразования Zod, позволяющее превратить полезную нагрузку в более приемлемый формат.

Подробнее здесь: https://stackoverflow.com/questions/796 ... s-in-astro
Ответить

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

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

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

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

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