You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何一次性设置formik表单的全部字段值?

解决方案

你可以直接通过Object.assign实现批量赋值,不管字段多少都能一行完成操作:

React.useEffect(() => {
  Object.assign(initialValues, address ?? {});
}, [address, initialValues]);

补充优化建议

  • 如果你需要过滤address里的多余字段,避免非表单属性写入初始值,可以搭配解构使用:
React.useEffect(() => {
  const { first_name, last_name, middle_name, label, description } = address ?? {};
  Object.assign(initialValues, { first_name, last_name, middle_name, label, description });
}, [address, initialValues]);
  • 直接修改initialValues不符合Formik的规范设计,更稳妥的方式是调用Formik实例的resetForm方法,避免出现状态不同步的问题:
// 前提是你已经通过useFormik拿到了formik实例
React.useEffect(() => {
  formik.resetForm({ values: { ...formik.initialValues, ...(address ?? {}) } });
}, [address, formik]);

内容的提问来源于stack exchange,提问作者Omama Zainab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:06:07