formik 简单表单操作加验证 青旅半醒 2022-12-25 14:56 120阅读 0赞 [官方文档][Link 1] ### formik 表单简单操作 ### * * 1.简单结构: * 2.form对象里边有数组用 * 3.ArrayHelper:有什么复杂操作就用arrayHelper去处理: * 4.引用全局变量: ## 1.简单结构: ## <Formik initialValues={ initialValues} onSubmit={ handleSubmit} validationSchema={ SignupSchema} validateOnChange={ true} validateOnBlur={ true} > { ({ values, validateForm }: FormikProps<Survey>) => ( <Form> <FieldArray name="questions" render={ (arrayHelpers: ArrayHelpers) => ( <Card> <CardTitle>问卷基本信息</CardTitle> 名称:<Field name="name" as={ Input} placeholder="请输入"/> <ErrorMessages name="name" component="div"/> 描述:<Field name="description" placeholder="请输入问卷描述" as={ Input.TextArea} rows={ 4} /> 编号:<Field name="code" placeholder="请输入" as={ Input} /> </Card> )} /> </Form> )} </Formik> 需要初始化值,在整个form里边,只要Field的name正确,那么传值就没问题,有一些复杂组件的话,就要借助arrayHelpers修改,不会影响原有联动逻辑 ## 2.form对象里边有数组用 ## 我下边这些组件都是引用的`'formik-antd'`的,要是项目中没有安装,建议还是老实用上边那样: //as的形式引用组件,这样引用之后as组件需要接收的值全部传给Field <FieldArray name={ conditionsName} render={ (arrayHelper) => ( <> { (value.relation === 'or' || value.relation === 'and') && ( <PlusCircleTwoTone twoToneColor="#0bbd9f" onClick={ () => arrayHelper.push([])} /> )} { value.conditions?.map((e: any, i: number) => ( <PreconditionItem key={ i}> <Cascader name={ `${ conditionsName}.${ i}`} options={ cascaderOptions} onChange={ (v) => handerOptionsChange(v, value.conditions, i)} value={ e} allowClear={ false} /> <MinusCircle twoToneColor="#0bbd9f" onClick={ () => handerRemove(arrayHelper, i)} /> </PreconditionItem> ))} </> )} /> ## 3.ArrayHelper:有什么复杂操作就用arrayHelper去处理: ## export interface ArrayHelpers { /** Imperatively add a value to the end of an array */ push: (obj: any) => void; /** Curried fn to add a value to the end of an array */ handlePush: (obj: any) => () => void; /** Imperatively swap two values in an array */ swap: (indexA: number, indexB: number) => void; /** Curried fn to swap two values in an array */ handleSwap: (indexA: number, indexB: number) => () => void; /** Imperatively move an element in an array to another index */ move: (from: number, to: number) => void; /** Imperatively move an element in an array to another index */ handleMove: (from: number, to: number) => () => void; /** Imperatively insert an element at a given index into the array */ insert: (index: number, value: any) => void; /** Curried fn to insert an element at a given index into the array */ handleInsert: (index: number, value: any) => () => void; /** Imperatively replace a value at an index of an array */ replace: (index: number, value: any) => void; /** Curried fn to replace an element at a given index into the array */ handleReplace: (index: number, value: any) => () => void; /** Imperatively add an element to the beginning of an array and return its length */ unshift: (value: any) => number; /** Curried fn to add an element to the beginning of an array */ handleUnshift: (value: any) => () => void; /** Curried fn to remove an element at an index of an array */ handleRemove: (index: number) => () => void; /** Curried fn to remove a value from the end of the array */ handlePop: () => () => void; /** Imperatively remove and element at an index of an array */ remove<T>(index: number): T | undefined; /** Imperatively remove and return value from the end of the array */ pop<T>(): T | undefined; } ## 4.引用全局变量: ## const { values, handleChange } = useFormikContext() // values是所有form值,用handleChange去改变form的值,语法: const onChange = handleChange(`${ name的值对应就是表单上哪一个值}`) as any onChange({ target: { value: 要修改的值传到这里 } }) [Link 1]: https://formik.org/
相关 单链表简单操作 include<stdio.h> include<stdlib.h> struct Node { int data;/ 数据域 桃扇骨/ 2023年01月02日 14:24/ 0 赞/ 226 阅读
相关 formik 简单表单操作加验证 [官方文档][Link 1] formik 表单简单操作 1.简单结构: 2.form对象里边有数组用 3.ArrayHe 青旅半醒/ 2022年12月25日 14:56/ 0 赞/ 121 阅读
相关 表单验证 应用 一、引入 <script src="Scripts/jquery-1.7.1.min.js"></script> <script src="Scripts/jqu 朱雀/ 2022年07月24日 06:28/ 0 赞/ 469 阅读
相关 表单验证 java script验证表单时常用: "^-\[0-9\]\\[1-9\]\[0-9\]\$" //负整数 "^-?//d+$" //整 ゝ一纸荒年。/ 2022年06月13日 07:54/ 0 赞/ 310 阅读
相关 表单验证 @Min(value = 18, message = " 不得小于18 ") private Integer age; / 表单验证 / ╰+攻爆jí腚メ/ 2022年06月05日 10:15/ 0 赞/ 295 阅读
相关 表单验证 angularjs 表单验证,包含必填、手机、邮箱、ip、网址等 基于angularjs自己封装的验证插件,之前的插件在angularjs上就不能使用了,然后将之前的封 淩亂°似流年/ 2022年06月04日 10:14/ 0 赞/ 293 阅读
相关 AngularJS——简单表单验证 客户端表单验证是AngularJS里面最酷的功能之一,AngularJS表单验证可以让你从一开始就写出一个具有交互性和可相应的现代HTML5表单。 在AngularJ 女爷i/ 2022年04月06日 10:56/ 0 赞/ 432 阅读
相关 表单验证 java script验证表单时常用: "^-\[0-9\]\\[1-9\]\[0-9\]\$" //负整数 "^-?//d+$" //整 小灰灰/ 2022年01月07日 14:35/ 0 赞/ 447 阅读
相关 简单表单验证 简单的表单验证 index.js $(document).ready(function() { var check = { 迷南。/ 2021年07月04日 17:14/ 0 赞/ 484 阅读
还没有评论,来说两句吧...