首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

antd3.x的form

最近在维护公司的台erp系统,项目中js库用的是react,ui库用的是antd。平时还是喜欢自己写css,刚开始还是有点不太习惯直接上ui库做项目,觉得用antd还是挺恶心的,主要是form。...而antd的form则出了一个类似v-model的类似方法。它不仅仅提供了双向绑定功能,而且它还具有校验,取值,赋值,重置,数据搜集,提交功能。...antd官网 双向绑定:getFieldDecorator 用法:该方法用在表单的子域里面,通过this.props.form.getFieldDecorator(id, options)进行使用,其中...}], })()} 虽然有双向绑定,但是某些时候,也会用到设置与获取值的方法,则会使用setFieldsValue,getFieldsValue...注意:要使用这些api,一定要把对应的 field 用 getFieldDecorator 进行注册。 设置setFieldsValue 通过setFieldsValue对其他控件进行赋值。

2.1K30

antd4与antd3Form表单设计区别

核心 antd3思想:使用HOC(高阶组件)包裹form表单,HOC组件的state存储所有的value,定义设置和获取值的方法 缺点:动一发牵全身,一个value改变,因为这是顶级状态,所以所有的子组件都会因父组件的重新...render而render,浪费了性能 antd4思想:使用Context 包裹form表单,自定义一个store类,存储所有的表单value,定义设置和获取值得方法,因为不是组件内部状态,需要自己定义更新函数...,每个Form.Item定义forceUpdate()强制更新函数,当我们setValue值得时候,根据name判断出要更新的Form.Item,可以调用该Item的更新函数更新,相比ant3节约了性能...React.forwardRef api, 把当前ref暴露给子组件,Form lib中导出前 Form/index文件可以看见包裹...== item); } } // 设置字段,接收一个对象 setFieldsValue = (newVal) => { this.store =

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

React动态添加标签组件

背景 在前端开发的过程,一些表单的输入经常需要输入多个内容,如果采用一个输入框+逗号分隔的方式,展示起来不是很清晰,一般需要采用标签的方式 需求 可以指定空状态时的标题 设置标签颜色 每个标签的最大长度...因为有多个标签,先定义一个变量来记录我们已经添加的标签 const [tags, setTags] = useState([]); // 待分隔列表 当鼠标输入框外部点击或者敲击回车的时候,都需要添加一个标签...给表单设置一下这个(用分隔标记拼接起来) 隐藏输入框 清空输入框 /* * 新增一个tag * */ const handleInputConfirm = () => { if (inputValue...Tooltip title={tag} key={tag}> {tagElem} ) : ( tagElem ); })} 删除标签 给Tag设置...join(separator) }); }; 编辑状态 当我们处于编辑状态的时候,打开表单后,它原本就有内容了 监听一下表单的内容,如果存在,则使用分隔标记分隔后塞入tags useEffect((

35960

antd表单设置数组字段

使用React+ant design进行开发时通常使用Form组件,但是很多时候我们某一个字段是二维数组。...atom({ key: "article-list-option", default: { /** 发布人 管理员或者用户*/ auth: undefined, /** 设置正序还是倒序...article_id: undefined, /** 发布者ID*/ author_id: undefined, }, }); 但是表单每个item只对应了一个字段,怎么对多维数组的每个元素进行设置呢...仔细阅读文档后发现antd提供了一个list子组件来遍历多维数组。...开发只需要采取map对多维数组进行遍历即可: 通过索引进行条件渲染,或者定义一个数组使用map的index参数进行渲染,不在需要条件判断。使用field中提供的key也可以,也是索引

2.2K20

​Ant Disign 4.0 升级实践扑街指南 (一)

扑街第一步:antd4-codemod 运行 antd4-codemod src 控制台: 出师未捷身先死 问题不大, 我们老实人不怕这个。 缺少core-js, 那就装一个。...: { setFieldsValue } }) => { React.useEffect(() => { setFieldsValue({ username: 'Bamboo',...你每次确定的时候重置的其实都是上一次的, 所以不会变 偏右的回复: resetFields 是重置回 initialValues 的,并且 initialValues 只用于第一次初始化,不响应后续的变化...editors=0011 官网, 也找到了这样的描述: v3 版本,修改未操作的字段 initialValue 会同步更新字段,这是一个 BUG。...但是由于被长期作为一个 feature 使用,因而我们一直没有修复。 v4 ,该 BUG 已被修复。initialValue 只有初始化以及重置表单时生效。

1.4K10

带你用React从零实现一个Antd4 Form表单

前言 cms后台管理系统,大家一定绕不开对Form表单的使用,接下来我们就来详细解析下Antd4 Form的背后实现以及数据仓库的知识。...这个时候可以使用React跨层级数据传递Context。...那么现在我们其实要做的就是加上注册组件更新,监听this.store,一旦this.store的某个改变,就更新对应的组件。...,我们已经基本上实现了一个Antd4 Form表单~ 当然,如果你想到里结束也可以,如果还想再完美一点,请继续往下: 再完美一点~ 实现给表单预设 如果你很认真地敲这些代码,你可能会发现,测试例子里的预设并没有执行...实现这一的效果,函数组件可以使用useRef,类组件也可以使用React.createRef。

1.2K20

react模态框表单总结

antd的表单操作比较细致,功能较多,我们工作中常用的无非增加内容的表单和编辑的表单,增加内容的表单初始化时,大部分默认为null的装填,偶尔有一些需要设置初始性别或者一些必选属性。...antd中提供了第二种模式,我们可以使用initvalue设置初始,此时表单初始化时会根据这个来初始化表单,所有初始化的操作都是根据这个。...还有就是表单提交时,是使用表单上form的事件,还是从form中提取值后提交,也是有选择的,前者可以用绑定form的form获取表单数据,后者可以绑定form的事件,前者的话数据验证再提交函数,后者的话可以根据...antd的框架特性formitem上设置rules来做校检,并且显示提示信息。...,这样做到功能隔离,谁的事情谁来做,而不是父组件定义好了再传递到子组件,这样增加了组件的耦合性。

5610

数栈技术文章分享:你居然是这样的initialValue

”value“,当我点击“更新value按钮”时,Input不更新。...Input组件没有设置value属性的话,就是一个非受控组件,它需要设置defaultValue,如果用户不手动改变Input的输入,那么Input就一直显示defaultValue指向的(友情提示:...用户手动更新表单数据,比如在组件手动输入,组件手动选择等等,在用户手动更新数据之后,initialValue的改变不会更新表单。 2....当执行了setFieldsValue方法之后,initialValue的改变不会更新表单。...下面的例子在生命周期函数componentDidMount执行了setFieldsValue方法,其他不变,你会发现不管怎么点击“重新获取数据按钮”,城市对应的都不会被更新,而总量对应的却一直更新

97310

react 使用数据请求的时候和setState的时候哪个先处理

今天在工作遇到一个问题,我司使用的是antd 组件,使用react数据请求时,并在其中设置setState,页面发现了异常....selectOnChange方法时,下面的调出人员也会随之发生变化, 问题来了:当我选择调出人员的一个下拉时: 如图 然后再去调用调出项目的selectOnChange事件,调出人员的位置变成了罗慧的value,...如图: 这什么原因,我们这边的前端说法是:两个异步的调用,一个异步请求,一个setState,当异步请求的时候,setState也是异步更改数据,当数据请求成功时,便遗留了上一个的value,这样的解释很牵强...我能提供的解决方案: 当调出项目selectOnChange的时候,调用一个同步的方法,把调出人员的select设为空.antd可以直接使用this.props.form.setFieldsValue

1K50

前端开发者们,这些知识tips你必须知道

使用CSS-in-JS,您可以将不同模块的样式定义同一个文件或同一个组件内,并以动态方式根据组件状态或其他条件应用它们。...( 一些元素()具有自己的默认宽度 ), 像下面这样: 当元素设置偏移后(left或right不为0),则会导致盒子溢出父盒子,致使整个页面出现滚动条: 此时可以用calc()计算确定盒子的宽度...一些元素()具有自己的默认宽度), 像下面这样: 当元素设置偏移后(left或right不为0),则会导致盒子溢出父盒子,致使整个页面出现滚动条: 此时可以用calc()计算确定盒子的宽度...Windows操作系统,可以通过“系统变量”和“用户变量”来设置环境变量。Linux或Unix系统,可以使用“export”命令来设置环境变量。...安装依赖: pnpm install cross-env 此时便可以package.json设置我们的环境变量: 此时控制台打印环境变量的,便可以看到环境变量被注入了: 20、使用vite-plugin-html

32510

前端开发者必须知道的日常小技巧!

使用CSS-in-JS,您可以将不同模块的样式定义同一个文件或同一个组件内,并以动态方式根据组件状态或其他条件应用它们。...( 一些元素()具有自己的默认宽度 ), 像下面这样: 当元素设置偏移后(left或right不为0),则会导致盒子溢出父盒子,致使整个页面出现滚动条: 此时可以用calc()计算确定盒子的宽度...一些元素()具有自己的默认宽度), 像下面这样: 当元素设置偏移后(left或right不为0),则会导致盒子溢出父盒子,致使整个页面出现滚动条: 此时可以用calc()计算确定盒子的宽度...Windows操作系统,可以通过“系统变量”和“用户变量”来设置环境变量。Linux或Unix系统,可以使用“export”命令来设置环境变量。...安装依赖: pnpm install cross-env 此时便可以package.json设置我们的环境变量: 此时控制台打印环境变量的,便可以看到环境变量被注入了: 20、使用vite-plugin-html

16110

结合Ant Design2.x总结在实际项目开发遇到的问题

(前言)Form的适用场合 a.校验和提交 b.数据收集/存数据 没有分步提交的情况下,使用Form是保存页面现有数据最简单最直接的方法 举例: ?...values); }) 看到图片右边Form已经帮我们把已键值对的形式保存起来了,key是你使用Form时通过getFieldDecorator 方法与表单进行双向绑定时的参数id,详见ant文档的...另一种是给数组的每一项都增加一个flow_flag作为这一项的唯一id,例如:点击add时,向数组push一条初始数据时同时将flow_flag push进去, 这种方法“1对1”“1对n”删都可以...如何实现一个受控选择的树和遇到的问题及解决方法 项目需要一个这样的树: 每一个树节点都代表的是一个职级,所以子节点全选中不代表父节点选中,父节点选中代表子节点全选中,这个时候Antd的树组件就不满足我们项目的需求了...(写时遇到的坑)写这样受控的树时不要用Form了,因为勾选时想给自己setFiledValue是不支持的,上网查是因为 “antdform表单的setFieldsValue只能设置其他域的,不能控制自己表单域的

99820

Angular实战之使用NG-ZORRO创建一个企业级后台框架(新手入门篇)

前言:   之前的一篇文章已经介绍过了,公司正在使用NG-ZORRO组件库开发后台应用,并且详细的介绍了Angular开发环境的搭建和项目的创建。...这篇文章就是为了让大家熟悉了解我们该如何在Angular项目中使用到NG-ZORRO UI组件库搭建后台管理框架。...启用图标动态加载):y set up custom theme file(设置自定义主题文件):y choose your locale code(选择区域设置代码):ZH-CN choose template...引入样式: angular.json 引入: { "styles": [ "node_modules/ng-zorro-antd/ng-zorro-antd.min.css" ]...} style.css 引入css样式文件: @import "~ng-zorro-antd/ng-zorro-antd.min.css"; style.less 引入 less 样式文件:

3.3K11
领券