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

React Hook Form v6.15.4设置defaultValues后Picker未填充且报字段缺失警告

react-hook-form@6.15.4 Picker字段默认值不生效问题解决方案

以下是针对该版本下独有的问题排查路径和修复方案:

1. 优先排查异步数据初始化时机问题

这是该场景下最高发的原因:

  • 若someArray是异步接口返回、或者依赖其他状态初始化的动态数组,useForm初始化时someArray还未加载完成,此时someArray[0]为undefined。react-hook-form@6.x 会将undefined的默认值判定为字段未配置,触发缺失警告,且后续someArray更新后,useForm不会自动同步更新默认值。
  • 其余正常的Picker大概率对应静态默认值,不会受异步时机影响。

修复方案:监听动态数组加载状态,加载完成后调用reset手动更新表单默认值

useEffect(() => {
  // 确认数组加载完成后再重置表单值
  if (someArray?.length) {
    reset({
      BETA_AGONIST: someArray[0],
      // 其他原有默认值可同步在此处声明保留
    })
  }
}, [someArray, reset])

2. 排查值格式匹配问题

确认三处值的格式完全一致:

  • betaAgonists选项数组中每一项的取值格式
  • Picker组件onChange触发时返回的值格式
  • 你设置的BETA_AGONIST默认值格式

比如其余正常的Picker默认值取的是选项的value属性,而当前字段误传了整个选项对象,就会导致Picker识别不到默认值。

3. 排查reset调用冲突

检查代码中是否存在无参调用reset()的逻辑,该操作会清空你在useForm中配置的所有默认值,若存在需要将BETA_AGONIST的默认值补充到reset的参数中。

4. 基础校验

检查字段名拼写是否完全一致,包括大小写、下划线,避免defaultValues和Controller的name属性不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:03