Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React formik并选择array to string Convert onSubmit_Javascript_Arrays_Reactjs_Formik_React Select - Fatal编程技术网

Javascript React formik并选择array to string Convert onSubmit

Javascript React formik并选择array to string Convert onSubmit,javascript,arrays,reactjs,formik,react-select,Javascript,Arrays,Reactjs,Formik,React Select,我使用的是React-formik和React-select软件包。我创建的表单包含用户可以新建和编辑的表单,也可以在同一表单中工作。我有一个单选多选字段,字段值在数组中,我想更改为字符串发送到onSubmit上的服务器。在更新时,我还想将字符串值转换数组设置为select字段。我试过了,但没有找到解决办法。请给我一些对我有帮助的想法 代码沙盒: 谢谢你的帮助我不确定这是否是你要找的,但我找到了 function create(fields) { fields.job = JS

我使用的是React-formik和React-select软件包。我创建的表单包含用户可以新建和编辑的表单,也可以在同一表单中工作。我有一个单选多选字段,字段值在数组中,我想更改为字符串发送到onSubmit上的服务器。在更新时,我还想将字符串值转换数组设置为select字段。我试过了,但没有找到解决办法。请给我一些对我有帮助的想法 代码沙盒:
谢谢你的帮助

我不确定这是否是你要找的,但我找到了

     function create(fields) {
    fields.job = JSON.stringify(fields.job)
    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);
  }

我认为您希望从结果应该是的数组中获取值

{姓名:“111”,父亲姓名:“222”,工作:[“工程师”,“油漆工”]}

函数创建(字段){
常数修正字段={
…字段,
job:fields.job.map((ele)=>ele.value)//从对象中提取值,[“引擎”、“画师”]
};//如果不修改当前的fields对象,请复制它并修改新的fields对象。
console.log(“旧”,字段);
console.log(“新建”,修改字段);
}

获取字段值后,在提交前将数组更改为字符串。我们需要在字段上绑定更改字符串值。这对我来说会很好的

代码沙盒链接:


下面有适合您需要的答案吗?若否,你们能详细说明你们期望得到的结果吗?是的,下面的答案解决了这个问题
  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);
  }
 function create(fields) {
    console.log(fields);
    const jobs = [];
    fields.job.map((ele) => jobs.push(ele.value));
    fields.job = jobs.toString();
    console.log(fields);
  }