首页 > 解决方案 > 获取未捕获的类型错误:path.split 不是反应中的函数

问题描述

我正在尝试对我的表单进行验证。我选择了“react-hook-form”库。但是我经常收到错误“Path.split 不是函数。即使使用了他们网站中给出的默认示例,我也会遇到同样的错误。这是官方网站中给出的默认代码。

import React from "react";
import { useForm } from "react-hook-form";

export default function App() {
  const { register, handleSubmit, watch, errors } = useForm();
  const onSubmit = data => console.log(data);

  console.log(watch("example")); // watch input value by passing the name of it

  return (
    {/* "handleSubmit" will validate your inputs before invoking "onSubmit" */}
    <form onSubmit={handleSubmit(onSubmit)}>
    {/* register your input into the hook by invoking the "register" function */}
      <input name="example" defaultValue="test" ref={register} />
      
      {/* include validation with required or other standard HTML validation rules */}
      <input name="exampleRequired" ref={register({ required: true })} />
      {/* errors will return when field validation fails  */}
      {errors.exampleRequired && <span>This field is required</span>}
      
      <input type="submit" />
    </form>
  );
}

标签: react-hook-form

解决方案


react-hook-form 从 6.XX 更新到 7.0.0 并且有重大变化:

你必须全部替换ref={register}{...register('value_name')}

例子:

版本 6.XX:

<input ref={register({ required: true })} name="test" />

7.0.X 版:

<input {...register('test', { required: true })} />

推荐阅读