将数据添加到Sveltekit formData

问题描述 投票:0回答:1

所以我想将我的特定数据添加到 Sveltekit 表单中的 formData 中。

我想这样做,因为我的一些表单输入已通过

{#if }
从 dom 中删除,因此它们不再出现在 formData 中。

这是我的表单组件:

<form
  action="?/newReservation"
  method="POST"
  use:enhance={({ formData }) => {
    formData = manageFormData();
    console.log(formData.get('numero_chambre'))

    return async ({ result, update }) => {
      console.log(result, update);
    };
  }}
>
...
</form>

这是我的

manageFormData()
功能:

const manageFormData = (): FormData => {
    let data = new FormData();

    let datesArr = dates;
    let debut = datesArr[0];
    let fin = datesArr[1];

    //user infos
    data.append("nom", nom);
    data.append("prenom", prenom);
    data.append("email", email);

    //reservation infos
    data.append("debut", debut);
    data.append("fin", fin);
    data.append("numero_chambre", JSON.stringify(bedroomsChoosen));
    data.append("total", total.toString());
    data.append("nb_petit_dejeuner", nombrePetitDejeuner.toString());
    data.append("jours_petit_dejeuner", JSON.stringify(joursPetitDejeuner));
    data.append("heure_petit_dejeuner", heurePetitDejeuner);

    console.log(data.get('numero_chambre'))

    return data;
  };

在我所有的

console.log()
中,我得到了正确的
numero_chambre
值,但是在我的
+page.server.ts
中,每当我获得
actions
数据值时,它都会返回null,我通过formData获得的唯一数据是屏幕上可见的表单部分。
所以我想修改/创建 formData 以获得我想要的值

sveltekit form-data progressive-enhancement
1个回答
0
投票

numero_chambre

此外,即使通过重新分配原始对象的属性来修复此问题,这也不起作用,因为 SvelteKit 不允许这样做。您必须修改 
let prop = thing.prop; prop = someOtherThing; // thing.prop is still the same

的原始实例。

因此,要么将原始对象传递到函数中并进行修改,要么将所有数据从新实例传输到原始实例。

© www.soinside.com 2019 - 2024. All rights reserved.