使用 React Hook Form 获取时接收状态 400

ln09nv2

我的 Google Books 克隆应用程序让用户提交他们输入的查询,然后显示响应数据。

按照React Hook Form 文档提供模式验证示例,我收到Error: Request failed with status code 400. 我究竟做错了什么?

const [query, setQuery] = useState("");
const [books, setBooks] = useState({ items: [] });

const {
  register,
  handleSubmit,
  formState: { errors }
} = useForm({
  resolver: yupResolver(schema)
});

const handleBookFetch = async () => {
  try {
    const result = await axios.get(`${API_BASE_URL}?q=${query}`);
    setBooks(result.data);
  } catch (error) {
    console.log(error);
  }
};

<form onSubmit={handleSubmit(handleBookFetch)}>
  <label name="book">
    Search the world's most comprehensive index of full-text books.
  </label>
  <div>
    <input type="text" name="book" {...register("book")} onChange={(event) => setQuery(event.target.value)} />
    <p>{errors.book?.message}</p>
    <button type="submit">Search</button>
  </div>
</form>
斯蒂芬詹宁斯

您的query状态永远不会更新,您甚至没有为setQueryuseState 返回函数分配名称因此,query始终具有其默认值“”。您的服务器可能会返回 400 Bad Request,因为您向它发送了一个空查询字符串。

我认为 React Hook Form 将您的数据作为对象传递给您的 handleSubmit 函数,因此您可以从中获取查询的当前值:

const handleBookFetch = async (data) => {
  // ...
  // "book" is the name of the input element
  const result = await axios.get(`${API_BASE_URL}?q=${data.book}`);
  // ...
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在设置状态时使用 React tinymce 和 react-hook-form 无限循环

使用react-hook-form的引用问题

如何使用react-hook-form在React中存储无线电组的状态

单选按钮在使用 react-hook-form 选择女性时传递空值

如何通过在react中使用react-hook-form来获取react-phone-input-2值

使用React Hook获取最新状态值?

如何在react中使用react-hook-form将表单数据发送到一个状态?

如何对嵌套数组使用react-hook-form

如何使用useEffect()更改React-Hook-Form defaultValue?

使用 reactstrap 从 react-hook-form 访问错误

如何使用 React Hook Form 验证选择输入字段?

如何在类Component内使用react-hook-form?

react-hook-form撤消表单到以前的状态

使用react-hook-form进行React-在没有可用数据时呈现输出-错误映射未定义

错误 400 和 200 与 useEffect React Hook

使用 react-hook-form 更改不受控制的值后,Material-UI TextField 状态不正确

从我的表单获取空数据对象react-hook-form

当返回初始状态时,React-hook-form不会将isDirty设置为false

React-Hook-Form 验证

使用带有 react-hook-form 的 useFieldArray append 时出错(无法读取 null 的属性(读取“焦点”))

React useState hook - 更新状态时何时使用以前的状态?

React Native React-Hook-Form重置

使用 React-Hook-Form 和 Typescript 返回 React-Select 的值

使用 react-hook-form 进行 react-phone-number-input 验证

如何解决使用 React-Hook-Form 验证 React Sematic UI 表单的 TypeScript 错误?

尝试将react-hook-form与react-input掩码结合使用

可以使用带有react-hook-form和react-input-mask的reactstrap吗?

TypeError:寄存器不是在React中使用React Hook Form的函数

在 React 中使用 react-hook-form 和子组件中的 Typescript