当前位置: 首页 > news >正文

什么是React.FC | 封装ant design弹框组件之:ant design 修改密码弹框组件

文章目录

    • 一、什么是React.FC
      • 组件的 props 是什么意思
    • 二、封装ant design弹框组件之:ant design 修改密码弹框组件
      • 定义修改密码弹框组件
      • 使用修改密码弹框组件:
      • [重要]关于提交时候,不同组件 表单数据共享
      • 报错:'Button' cannot be used as a JSX component.

一、什么是React.FC

React提供了一个组件类型React.FunctionComponent,可简写React.FC。

  • 可以接收一个泛型p,默认是{}
  • children,返回一个React.ReactNode,这个children是任何component都拥有的
  • 静态属性defaultProps,组件的默认属性,外部可以不传这个属性。

我们使用React.FC来写 React 组件的时候,是不能用setState的,取而代之的是useState()、useEffect等 Hook API

import React from 'react';type MyComponentProps = {name: string;
};const MyComponent: React.FC<MyComponentProps> = ({ name }) => {return <div>Hello, {name}!</div>;
};

在这个示例中,MyComponent 是一个函数组件,接受一个名为 MyComponentProps 的对象作为参数,并返回一个 JSX 元素。使用 React.FC 声明 MyComponent 的类型,明确了它接受的 props 参数类型为 MyComponentProps。

使用 React.FC 可以提供更严格的类型检查,并帮助捕获潜在的错误。它还可以让代码更易读和理解,因为它清晰地定义了函数组件的输入和输出。

组件的 props 是什么意思

在 React 中,组件的 props(属性)是组件接收的参数,用于传递数据和配置信息给组件。

当我们使用组件时,可以通过在组件标签上添加属性来传递数据给组件。这些属性将作为 props 在组件内部访问和使用。

例如,函数组件 MyComponent,它接收一个名为 name 的属性:

function MyComponent(props) {return <div>Hello, {props.name}!</div>;
}

这个例子中,name 是 MyComponent 组件的一个属性,可以通过 props.name 来访问传递给组件的值。

当我们在父组件中使用 MyComponent 时,可以像这样传递 name 属性的值:

<MyComponent name="Alice" />

我们将字符串 “Alice” 作为 name 属性的值传递给 MyComponent 组件。

通过使用组件的 props,我们可以在父组件和子组件之间传递数据、配置组件的行为,并实现组件之间的交互。

二、封装ant design弹框组件之:ant design 修改密码弹框组件

定义修改密码弹框组件

添加了 ChangePasswordModalProps 类型定义,并将 visible 属性添加到组件中。同时,我们在 handleOk 函数中调用传递进来的 onOk 回调函数

ChangePasswordModal.tsx

import React, { useState } from 'react';
import { Button, Card, Modal, Input, Form, message } from 'antd';type ChangePasswordModalProps = {visible: boolean;onCancel: () => void;onOk: () => void;
};const ChangePasswordModal: React.FC<ChangePasswordModalProps> = ({ visible, onCancel, onOk }) => {const [form] = Form.useForm();return (<Modaltitle="修改密码"visible={visible}onCancel={onCancel}onOk={onOk}><Form form={form}><Form.Itemname="oldPassword"label="旧密码"rules={[{ required: true, message: '请输入旧密码' }]}><Input.Password /></Form.Item><Form.Itemname="newPassword"label="新密码"rules={[{ required: true, message: '请输入新密码' }]}><Input.Password /></Form.Item><Form.Itemname="confirmPassword"label="确认密码"rules={[{ 
http://www.lryc.cn/news/277362.html

相关文章:

  • DHCP
  • VS code的使用介绍
  • 【蓝桥杯选拔赛真题57】python兔子分胡萝卜 第十四届青少年组蓝桥杯python 选拔赛比赛真题解析
  • Spring MVC中JSON数据处理方式!!!
  • 学习JavaEE的日子 阶段回顾
  • 深入理解 Flink(一)Flink 架构设计原理
  • Python pip 常用指令
  • Eureka工作原理详解
  • 开源加解密库之GmSSL
  • 小程序分销商城,打造高效线上购物体验
  • Day2:【英文时评】当我们谈论海克斯科技的时候我们在谈论什么?(未完结)
  • Selenium-java 定位元素时切换iFrame时的方法
  • WinForms中的UI卡死
  • Zookeeper设计理念与源码剖析
  • EasyExcel快速导出 100W 数据
  • SpingBoot的项目实战--模拟电商【5.沙箱支付】
  • How to collect data
  • 二刷Laravel 教程(用户注册)总结Ⅳ
  • 跨国制造业组网方案解析,如何实现总部-分支稳定互联?
  • 网络的设置
  • CentOS常用命令
  • Linux运维之切换到 root 用户
  • 【2024系统架构设计】 系统架构设计师第二版-层次式架构设计理论与实践
  • SpringSecurity的注解@PreAuthorize的失效问题
  • k8s的集群调度
  • 简单易懂的理解 PyTorch 中 Transformer 组件
  • 搭建Eureka服务注册中心
  • 【React】react-router-dom中的HashRouter和BrowserRouter实现原理
  • 生物信息学中的可重复性研究
  • css-img图像同比缩小