使用register时转换onChange

Noi*_*art 1 react-hook-form

是否可以使用registerreact-hook-form的just和v7来转换传出值?

我通过覆盖e我传递给的值来做到这一点onChange,但它永远不会成为我设置的值。325

  const { onChange, ...registration } = props.form.register('foo');

  const handleChange = e => {
    const value = e.target.value;
    const transformedValue = 325;
    onChange({
      type: e.type,
      target: {
        name: e.target.name,
        type: e.target.type,
        value: transformedValue
      }
    });
  };

return <input {...registration} onChange={handleChange} />
Run Code Online (Sandbox Code Playgroud)

kno*_*fel 5

这里的问题是 noref不能通过调用元素register外部来初始化<input />

对于 a 的注册,ref您可以添加自定义寄存器,这将使您可以在通过方法(由 提供)<input />进行更改后修改元素的当前值。或者另一种方法是将您的参考分享给您的.setValueuseForm<input />

但是,我认为这setValueAs也适合您的情况。这将在返回您的输入值之前运行提供的函数。是文档中的相关部分。

<input {...register("foo", { setValueAs: value => `${value} 325` })} />
Run Code Online (Sandbox Code Playgroud)

编辑 React Hook 表单 - 基本(分叉)