javascript - React-hook-form custom onChange handler in checkbox -> change is not registered - Stack Overflow

I'd need to add custom handler in the onChange event of a checkbox, however, doing so onChange won

I'd need to add custom handler in the onChange event of a checkbox, however, doing so onChange won't reflect to react-hook-form.

I've followed the instructions how to do custom onChange by following the chapter

Custom onChange, onBlur: ​ /

However cannot make it work.

Seeing in the DevTool the first checkbox change reflects to form just fine however the latter with a custom handler does not.

...
const subscribeToNewsLetter = register('subscribeToNewsLetter')
...
<div>
  ​<label> I consent </label>
  ​<input            
    ​type="checkbox"
    ​{...register('consent')}  //This checkbox without any custom handler works fine
  ​/>
​</div>

​<div>
  ​<label>Subscribe to newsletter</label>
  ​<input            
    ​type="checkbox"
    ​onChange={(e) => {
      ​subscribeToNewsLetter.onChange(e); // This needs to do custom stuff in onChange
      ​handleChange(e);         // However doing so 
    ​}}                         // the change is not registered to hook-form
    ​onBlur={subscibeToNewLetter.onBlur}
    ​ref={subscibeToNewLetter.ref} 
  ​/>
</div>
...

I've been fiddling it here which illustrates the problem the best.

I'd need to add custom handler in the onChange event of a checkbox, however, doing so onChange won't reflect to react-hook-form.

I've followed the instructions how to do custom onChange by following the chapter

Custom onChange, onBlur: ​ https://react-hook-form./api/useform/register/

However cannot make it work.

Seeing in the DevTool the first checkbox change reflects to form just fine however the latter with a custom handler does not.

...
const subscribeToNewsLetter = register('subscribeToNewsLetter')
...
<div>
  ​<label> I consent </label>
  ​<input            
    ​type="checkbox"
    ​{...register('consent')}  //This checkbox without any custom handler works fine
  ​/>
​</div>

​<div>
  ​<label>Subscribe to newsletter</label>
  ​<input            
    ​type="checkbox"
    ​onChange={(e) => {
      ​subscribeToNewsLetter.onChange(e); // This needs to do custom stuff in onChange
      ​handleChange(e);         // However doing so 
    ​}}                         // the change is not registered to hook-form
    ​onBlur={subscibeToNewLetter.onBlur}
    ​ref={subscibeToNewLetter.ref} 
  ​/>
</div>
...

I've been fiddling it here which illustrates the problem the best. https://stackblitz./edit/react-hook-form-fiddling-zlnhzs

Share Improve this question asked Aug 5, 2021 at 6:06 anmatikaanmatika 1,7216 gold badges23 silver badges30 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 3

You've to update the input like that:

<input
  type="checkbox"
  {...subscibeToNewLetter}
  onChange={e => {
    subscibeToNewLetter.onChange(e);
    handleChange(e);
  }}
/>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745324673a4622599.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信