首页 > 其他分享 >React-hook-form-mui(二):表单数据处理

React-hook-form-mui(二):表单数据处理

时间:2024-03-15 15:32:10浏览次数:27  
标签:const form watch 表单 React hook mui

前言

在上一篇文章中,我们介绍了react-hook-form-mui的基础用法。本文将着表单数据处理。
react-hook-form-mui提供了丰富的表单数据处理功能,可以通过watch属性来获取表单数据。

Demo

下面是一个使用watch属性的例子:

import React from 'react';
import { useForm } from 'react-hook-form';
import { Button } from '@mui/material';
import { FormContainer, TextFieldElement } from 'react-hook-form-mui';

export interface UserSettings {
  firstName: string;
  lastName: string;
}

const MyForm = () => {
  const formContext = useForm<UserSettings>({
    defaultValues: {
      firstName: '',
      lastName: ''
    }
  });

  // 使用 watch 属性获取表单数据
  const { watch } = formContext;
  const formData = watch();

  const onSubmit = (data) => {
    console.log(data);
  };


  const handleGetDataClick = () => {
    const { firstName, lastName }= formData;

    console.log(firstName); //输出 firstName
    console.log(lastName); //输出 lastName
    console.log(formData); //输出 { firstName: xx, lastName: xx }
  };

  return (
    <FormContainer
      formContext={formContext}
      onSuccess={(data) => {
        onSubmit(data);
      }}
    >
      <TextFieldElement name="firstName" label="First Name" />
      <TextFieldElement name="lastName" label="Last Name" />
      <Button onClick={handleGetDataClick}>Get Form Data</Button>
      <Button type="submit">Submit</Button>
    </FormContainer>
  );
};

export default MyForm;

从以上的demo不难看出,我们能够通过watch很轻易的去获取表单元素的值,而不需要通过useState的方式去获取,能够减少项目中的不必要的代码。

总结

以上是关于React-hook-form-mui的表单数据处理。希望本文会对你有所帮助。如果有什么问题,可在下方留言沟通。

标签:const,form,watch,表单,React,hook,mui
From: https://blog.csdn.net/m0_73117087/article/details/132408822

相关文章

  • terraform小知识 - 如何取消掉环境变量中设置的身份凭证.md
    terraform小知识-如何取消掉环境变量中设置的身份凭证.md文章目录terraform小知识-如何取消掉环境变量中设置的身份凭证.md需求测试总结需求目前通过环境变量配置了aws的身份凭证,如果直接执行terraform命令,则会调用该身份,但是直接unset取消环境变量又会影响同......
  • React — forwardRef
    React.forwardRef是React提供的一个API,用于在函数组件中向子组件传递ref。通过使用React.forwardRef,我们可以将ref传递给函数组件内部的DOM节点或其他组件,从而实现对其进行操作。import{forwardRef}from"react"constSon=forwardRef((prop,ref)=>{return......
  • 使用 React Router 的 withRouter
    使用ReactRouter的withRouterReactRouter是React应用中常用的路由管理工具,它可以帮助我们管理页面之间的导航和状态。而withRouter则是ReactRouter提供的一个高阶组件,用于将路由相关的属性注入到组件中,使得我们可以在不同的组件中访问路由信息。1.安装Reac......
  • React — useReducer使用方法
    1.定义一个reducer函数(根据不同的action返回不同的新状态)2.在组件中调用useReducer,并传入reducer函数和状态的初始值3.事件发生时,通过dispatch函数分发一个action对象(通知reducer)要返回哪个新状态并渲染UIimport{useReducer}from"react"//1.定义一个reducer函数,根据不......
  • vue3 中ref和reactive的区别讲解
    1.定于数据角度对比:ref用来定义:基本类型数据reactive用来定义:对象、或数组类型的数据备注:ref也可以用来定义对象或数组类型数据,它内部会自动通过reactive转为代理对象2.原理角度对比:ref通过Object.defineProperty()的get与set来实现响应式的(数据劫持)reactive通过......
  • React Antd 的ProTable 如何默认展开树结构
    1、defaultExpandAllRows:true  defaultExpandAllRows设为true就可以了<ProTablerowKey="key"columns={rightBomColumnArr}dataSource={rightBomTableTreeData}......
  • 新鲜出炉!界面控件DevExpress WinForms 2024产品路线图预览(三)
    DevExpressWinForm拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!本文将介绍2024年DevExpressWinForms第一个主要更新......
  • 在WinForms中的使用FluentScheduler实现定时任务
     在WinForm程序中使用 FluentScheduler框架实现一个多任务的定时执行功能。 1、使用Nuget安装 FluentScheduler包,默认使用最新稳定版2、以下是实现功能的代码:1usingSystem;2usingSystem.Windows.Forms;3usingFluentScheduler;45publicpartialclas......
  • 使用ScottPlot开源库在WinForms中快速实现大型数据集的交互式图表显示
    思维导航前言ScottPlot类库介绍ScottPlot类库支持平台和框架ScottPlot类库源代码新建WinForms项目安装ScottPlot.WinForms包折线图实现柱状图实现饼图实现散点图实现项目演示入口项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言在.NET应用开......
  • PyInstaller does not include a pre-compiled bootloader for your platform.
    用PyInstaller打包python程序时,收到下面错误:User140343INFO:BuildingPKGbecausePKG-00.tocisnonexistent140344INFO:BuildingPKG(CArchive)mainwindow.pkg215759INFO:BuildingPKG(CArchive)mainwindow.pkgcompletedsuccessfully.215891INFO:Bootloa......