【问题标题】:React Hook Form reset Controller (value) to defaultReact Hook Form 将控制器(值)重置为默认值
【发布时间】:2021-12-10 07:45:51
【问题描述】:

这是我的组件的示例,包装在控制器中

<div className="mt-1">
    <Controller
       control={control}
       name="selectedBirthMonth"
       defaultValue={selectedMonth}
       render={({ field }) => (
       < SelectBirthMonth 
         field={field}
         startYear={startYear}
         selectedYear={selectedYear}
         months={months}
         value={selectedMonth}
         reducedMonths={reducedMonths}
         onChange={useEffect(() => monthSelect(field.value)), [selectedMonth]}/>
   )}
 />
</div>

现在我只是想用一个按钮来重置它。稍后我想有条件地重置,具体取决于兄弟组件中的值。首先让它与按钮一起工作会很棒:

<input
  style={{ display: "block", marginTop: 20 }}
  type="button"
  onClick={() =>
   reset(selectedBirthMonth)
  }
  value="Reset with values"
/>

我收到错误消息:未定义 selectedBirthMonth。基本上,我想要的是,单击时,整个组件会进入默认/第一次渲染时的状态。我错过了什么?

【问题讨论】:

    标签: reactjs react-hook-form


    【解决方案1】:

    reset 并没有以某种方式完成这项工作,但 setValue 做到了。但是我设置为一个值,而不是第一次渲染后的原始状态,但在我的情况下它是相同的。

    <input
      style={{ display: "block", marginTop: 20 }}
      type="button"
      onClick={() =>
        etValue('selectedBirthMonth', lastAvaliableMonth)
      }
      value="Reset with values"
    />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 2021-12-09
      • 2022-01-23
      • 2021-12-11
      • 2021-09-16
      相关资源
      最近更新 更多