Formik:根据之前的值设置值

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

是否可以根据之前的值设置 formik 值?

这是一个简单的例子:

  const onButtonClick = () =>{
    Array.from(Array(5).keys())
     .forEach((num) => formik.setFieldValue("testvalue", formik.values.testvalue + num));
    };
  }

问题是,如果某些函数异步并行运行,我们最终得到的结果是只添加了一个数字,而不是所有数字的总和。

在react的useState“Dispatch”中,我们可以使用函数作为值,该函数将前一项作为参数:

const [testValue, setTestvalue] = React.useState(false);
setTestvalue((prev) => prev + num)

所以我希望 formik 会出现这样的情况:

const onButtonClick = () =>{
    Array.from(Array(5).keys())
     .forEach((num) => formik.setFieldValue("testvalue", (prev) => prev + num));
    };
  }
reactjs next.js react-hooks formik
1个回答
0
投票

setFieldValue
没有这个功能。但我认为你可以通过从
formik.values['field_name']
获取先前(当前)值来实现你想要的:

const onButtonClick = () =>{
    Array.from(Array(5).keys())
     .forEach((num) => formik.setFieldValue("testvalue", formik.values['testvalue'] + num));
    };
  }
© www.soinside.com 2019 - 2024. All rights reserved.