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

甘肃省住房城乡建设厅网站首页有没有专门做宝宝用品的网站

甘肃省住房城乡建设厅网站首页,有没有专门做宝宝用品的网站,电脑哪里做模板下载网站,手机版静态网页模板一、概述 Antd是一个非常强大的UI组件库,里面的Form表单组件也基本能满足我们大多数场景。但是也有需要自定义表单的场景。 Vue2里我们使用v-model,结合子组件的model属性,来实现自定义组件的双向绑定。 Vue3里我们使用v-model,…

一、概述

Antd是一个非常强大的UI组件库,里面的Form表单组件也基本能满足我们大多数场景。但是也有需要自定义表单的场景。

  • Vue2里我们使用v-model,结合子组件的model属性,来实现自定义组件的双向绑定。

  • Vue3里我们使用v-model,结合子组件的update:modelValue来实现同样功能。

  • 到了React+Antd中,我们采用引用父组件默认传入onChange事件,子组件调用来实现。

二、开发实现

1、代码

父组件代码:

import { Button, Space, Form, Input, Radio, Switch } from "antd";
import MyBtns from "./components/myBtns";
import { useState, useEffect } from "react";function Index() {const [form] = Form.useForm();const [formData, setFormData] = useState<Object>({});const layout = {name: "myFrom",autoComplete: "off",labelCol: {span: 3,},wrapperCol: {span: 21,}};const initData = {title: "IT飞牛的自定义表单",item1: "选项-2",};const onFinish = async (values: Object) => {//提交数据//...}const onReset = () => {form.resetFields();};useEffect(() => {setFormData(initData);}, [])return <div>{JSON.stringify(formData)}<FormonFinish={onFinish}onValuesChange={(changedValues, allValues) => { setFormData(allValues) }}form={form}labelAlign="right"initialValues={initData}style={{"marginTop": "50px"}}{...layout}><Form.Item name="title" label="标题"><Input /></Form.Item><Form.Item name="item1" label="自定义项"><MyBtns /></Form.Item><Form.Item wrapperCol={{ offset: 3, span: 21 }}><Space size="middle"><Button htmlType="button" onClick={onReset}>取消</Button><Button type="primary" htmlType="submit">提交</Button></Space></Form.Item></Form></div >
}export default Index;

子组件(myBtns.tsx)代码:

import { Button, Space } from "antd";const myBtns = (props: any) => {const { value, onChange } = props //value 是form表单中"name"对应的字段值const onSelected = (val: string) => {onChange(val)}const getTypeClass = (val: string) => {return value == val ? "default" : "dashed";}return <Space><Button type={getTypeClass("选项1")} onClick={() => onSelected("选项1")}>选项1</Button><Button type={getTypeClass("选项2")} onClick={() => onSelected("选项2")}>选项2</Button><Button type={getTypeClass("选项3")} onClick={() => onSelected("选项3")}>选项3</Button></Space>
}export default myBtns;

2、最终效果

请添加图片描述

可以看到,表单中有两个选项,第一个是Input组件,第二个是自定义组件MyBtns,已经实现数据的事实更新。

3、原理

Form.Item 在渲染时会注入 valueonChange 事件给子元素。

  • value:form.item对应的name属性的值,可用作默认值以及返显
  • onChange:用于监听value元素值的变化,并将其传给form.item使其可以通过相关api获得其值

注意:当你的字段组件被包裹时属性将无法传递。所以以下代码是不会生效的:

<Form.Item name="input"><div><h3>I am a wrapped Input</h3><Input /></div>
</Form.Item>
http://www.15wanjia.com/news/172780.html

相关文章:

  • 建筑课程网站唯品会一家做特卖的网站
  • 定制网站制作哪家好广告创意设计公司
  • 涞水网站建设WordPress增加下载按钮
  • 网站建设管理ppt模板重庆网站运营公司
  • seo优化网站教程百度南宁公司注册网上核名
  • 网站切换中英文佛山网红打卡地
  • 重庆做网站个人河间建设网站
  • 网站页面统计代码咨询公司来公司做调查
  • 网站建设调查内容有哪些网络软文发布
  • 看上去高端的网站WordPress搭建主题
  • 做网站需要哪些技术人员旅行社ota平台运营做些什么
  • 图书网页设计网站网站顶部怎么做新浪链接
  • 做js题目的网站网络营销渠道的功能
  • 开发网站语言物流网站建设规划书
  • 网站建设网页开发国际营销信息系统
  • 汕头网站设计价格制作网站页面
  • 莲花网站余姚市建设协会网站
  • 怎么把自己做的网站上传到网上wordpress首页悬浮框
  • 买的有域名怎么做网站网站系统维护一个月正常吗
  • 手机商城网站定制开发合同
  • 在建设厅网站怎么办建造师延期wordpress 上传文件功能
  • 化妆品可做的团购网站有哪些h5企业网站源码
  • 增长超人网站建设价格合肥网络公司网站建设
  • 娄底建设局网站网站开发需要后台吗
  • php做各种网站类型得模板在哪里创建网站平台
  • 广安发展建设集团公司网站一起买买买网站建设
  • 广东两学一做考试网站做公益网站的说明
  • 网站实名审核中心定制衣柜哪种板材最好
  • 招代理商的网站电商类网站有几个主流程
  • 做公司网站需要制作内容wordpress菜单目录层叠