簡體   English   中英

將 formik 和 select 數組反應為字符串 Convert onSubmit

[英]React formik and select array to string Convert onSubmit

我正在使用反應 formik 和反應 select package。 我在包含用戶可以創建新的表單上創建,並且編輯也以相同的表單工作。 我有一個多 select 字段,該字段值在數組中,我想在 onSubmit 上更改為字符串發送到服務器。 而且在更新時我想將字符串值轉換數組設置為 select 字段。 我嘗試了,但找不到解決方案。請給我任何想法它對我有幫助 codeSandbox: https://codesandbox.io/s/multipleselect-formik-3eqxp?file=/src/RegisterForm.js感謝您的幫助

獲取字段值后,在提交之前將數組更改為字符串。 我們想在字段上綁定更改字符串值。 這對我來說會很好。

代碼沙箱鏈接: https://codesandbox.io/s/multipleselect-formik-3eqxp?file=/src/RegisterForm.js:657-844

 function create(fields) {
    console.log(fields);
    const jobs = [];
    fields.job.map((ele) => jobs.push(ele.value));
    fields.job = jobs.toString();
    console.log(fields);
  }

我不確定這是否是您要找的,但我做到了

     function create(fields) {
    fields.job = JSON.stringify(fields.job)
    console.log(fields);
  }

或者

  function create(fields) {
    const jobs = [];
    fields.job= fields.job.map((ele) => jobs.push(ele.value));
    console.log(fields);
  }

代替

  function create(fields) {
    console.log(fields);
    const jobs = [];
    fields.job.map((ele) => jobs.push(ele.value));
    const job = ("text => ", jobs.toString());
    console.log(job);
    console.log(fields);
  }

我想你想從結果應該是的數組中獲取值

{name: "111", fatherName: "222", job: ["enginner", "painter"] }

function create(fields) { 
    const amendedFields = {
      ...fields,
      job: fields.job.map((ele) => ele.value) // extract value from object,  ["enginner", "painter"]
    }; // not mutating the current fields object, copy it and mutate the new one.
    console.log("old", fields);
    console.log("new", amendedFields);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM