有没有办法将ref {useRef}绑定到Submit函数/变量

时间:2020-10-13 20:41:25

标签: javascript reactjs react-router

我是新来的反应者,我正在尝试构建一个表格。提交表单后,我希望页面重定向到主页。有没有一种方法可以设置useRef来监视内置的提交功能? 我目前没有编译器错误,但页面无法重定向。

当前代码:

import React, {useRef} from 'react'
import {useForm} from 'react-hook-form'
import Button from '@material-ui/core/Button'
import {Redirect} from 'react-router-dom'
export default function Form() {
    const submit = useRef(false)
    const {register, handleSubmit} = useForm();
    const redir = (data) => {
        console.log(submit.current)
        console.log(data)
            return <Redirect to='/' />
    }
    return (
        <div>
            <form className="form" ref={submit} onSubmit={handleSubmit(redir)}>

1 个答案:

答案 0 :(得分:0)

您要从处理程序函数返回Redirect,但需要渲染它。相反,您可以使用history.push('/')做您想要的事情。

import { useHistory } from 'react-router-dom';

//...

export default function Form() {
  const submit = useRef(false);
  const history = useHistory();
  const {register, handleSubmit} = useForm();
  const redir = (data) => {
    console.log(submit.current);
    console.log(data);
    history.push('/');
  }
  return (
    <div>
      <form className="form" ref={submit} onSubmit={handleSubmit(redir)}>
        <input type="submit" value="Submit" />
      </form>
    </div>
  );
}
相关问题