是否可以根据之前的值设置 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));
};
}
setFieldValue
没有这个功能。但我认为你可以通过从 formik.values['field_name']
获取先前(当前)值来实现你想要的:
const onButtonClick = () =>{
Array.from(Array(5).keys())
.forEach((num) => formik.setFieldValue("testvalue", formik.values['testvalue'] + num));
};
}