javascript - 使用 Material UI 按钮时,react-hook-form 不起作用

标签 javascript reactjs

这是我的代码,没有 Material UI 按钮:

const {register, handleSubmit} = useForm();

const onSubmit = (data) => {
    console.log(data)
}
const handleChange = (e) => {
    console.log(e.target.files)
}

...

<form id="myFile" onSubmit={handleSubmit(onSubmit)}>
    <input id="file1" type="file" {...register("file1")} onChange={handleChange}/>
    <input type="submit"/>
</form>

这对我有用,但是当我尝试添加 Material UI 按钮而不是输入时,我会得到 onChange 值,但是当我单击提交时。我没有收到任何表单数据。

const {register, handleSubmit} = useForm();

const onSubmit = (data) => {
    console.log(data)
}
const handleChange = (e) => {
    console.log(e.target.files)
}

...

<form id="myFile" onSubmit={handleSubmit(onSubmit)}>
    <input id="file1" type="file" {...register("file1")} onChange={handleChange} 
    style={{display:"none"}}/>
    <label htmlFor="file1">
        <Button variant="contained" component="span">
             Choose file
        </Button>
    </label>
    <input type="submit"/>
</form>

有什么解决办法吗?

最佳答案

您忘记提及按钮的类型

默认 Material ui 按钮类型为

type="button"

Check this git Document

你应该提到

type="submit"

就这样吧

<Button type="submit" variant="contained" component="span">
             Choose file
</Button>

关于javascript - 使用 Material UI 按钮时,react-hook-form 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67207521/

相关文章:

javascript - "You may need an additional loader to handle the result of these loaders."

css - React 动画重新排序元素

javascript - Angular 异步加载变量未在 View 中更新

javascript - React hook 在组件挂载上重定向

javascript - React onClick 无法启动计时器

javascript - react Hook 与事件监听器

javascript - 是否有可能两个异步 Javascript 函数实例同时执行两个代码块?

javascript - 在node.js服务器上使用socket.io,不断发出数据或允许客户端计算给定的时间戳会更好吗?

javascript - 如何在数据表中捕获 td 索引?

javascript - 如何在 Flux slider 中添加或删除图像