npm 包 formik-nested 使用教程

当我们在开发复杂的表单时,会遇到表单项之间的嵌套关系,例如一个订单表单中包含收货人信息和商品信息。如果没有一个好用的库,这些嵌套关系需要手动处理,代码量和复杂度都会大大增加。此时,formik-nested 这个 npm 包可以帮助我们解决这个问题。

本文将介绍如何使用 formik-nested 包来优雅地处理表单中的嵌套关系,以示例代码形式呈现。

安装和引入

首先,我们需要安装 formik-nested 包。在终端中执行以下命令即可:

--- ------- -------------

安装完成后,我们在代码中引入它:

------ - ----------- ----- - ---- ---------
------ - ----- - ---- ------- -- --- ---- - ----- --
------ - ----------- - ---- ----------------

基本使用

formik 的表单中,如果需要嵌套某个字段,我们可以使用 FieldArrayNestedField 来实现。

----------- ----------------
  --- ------- ---- -- -- -
    -----
      ------------------------------ ------ -- -
        ---- ------------
          ------------ ---------------------------------
            -------- -- ------ ---------- ---
          --------------
          ------------ ----------------------------------
            -------- -- ------ ---------- ---
          --------------
          ------- ----------- -- ------------------------------
        ------
      ---
      ------- ----------- -- ------ ----- --- ------ -- ------- ----------------
    ------
  --
-------------

在上述代码中,我们使用 FieldArray 来表示一个可被动态添加/删除的产品列表。在列表项中,我们使用 NestedField 来表示每个产品的名称和价格。NestedFieldname 属性采用了与 formik 相同的语法,以实现嵌套表示。同时,在 NestedField 中,我们将 antdInput 控件作为子元素传入,这样可以直接渲染出一个输入框。

高级使用

除了基本使用之外,formik-nested 还提供了很多方便的功能,如:

按钮组

我们可以使用 FormGroup 来创建一个按钮组,进一步将表单项分类,提高可读性。

---------- ---------------
  ------------ ----------------
    -------- -- ------ ---------- ---
  --------------
  ------------ ------------
    -------- -- ------ ---------- ---
  --------------
------------

数组表单

使用 ArrayField 来处理数组表单。

----------- ---------------
  ------------------ --
    --------------------------- ------ -- -
      -----------------
        -----------
        --------------------------------
        ---------- --
          ----------------------- ---------- -- -
            ------------------ ----------------
              ------------
                ----------------------------------------------------
                --------------- -- ------ ---------- ---
              --
              ------------
                ---------------------------------------------------
                --------------- -- ------ ---------- ---
              --
            --------------------
          --
        -
      --
    --
  -
-------------

数据转换

使用 transform 使得数据转化更加方便。以下代码演示了将 { a: { b: { c: 'value' } } } 转化为 { abc: 'value' }:

---------- ------------ ------------------ -- -- ---- ----- ----
  -------- -- ------ ---------- ---
------------

使用 subTransform 使得子属性转换更加方便:

---------- -------- --------------------- -- -- -- --------- ----
  -------- -- ------ ---------- ---
------------

总结

如上,使用 formik-nested 可以更加优雅地处理表单中的嵌套关系,进一步提高开发效率和代码重用性,并且使表单结构更加清晰易读。本文从安装和引入入手,详细介绍了 formik-nested 的基本使用和高级使用,希望能够为你带来帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005671181e8991b448e35ae


猜你喜欢

  • npm 包 box-turtle-ng 使用教程

    前言 npm 是最常用的 Node.js 包管理器之一,可以帮助 Node.js 开发人员直接从社区下载和使用 JavaScript 包。box-turtle-ng 是一款基于 Node.js 的测试...

    3 年前
  • npm 包 spotify-wrapper-jc 使用教程

    前言 当我们在开发一些 music-related 的应用时,我们往往需要与 Spotify 进行交互。这时候,spotify-wrapper-jc 这个 npm 包就能为我们省去很多麻烦。

    3 年前
  • npm 包 unpinned 使用教程

    什么是 unpinned? unpinned 是一个 npm 包,可以帮助开发者在项目中自动更新 package.json 中的依赖版本。通常,我们在项目开发中,会使用一些依赖库,这些依赖库版本会有所...

    3 年前
  • npm 包 afselectbox 使用教程

    afselectbox 是一个基于 jQuery 的下拉选择框插件,可以帮助开发者快速构建下拉选择框并提供丰富的配置项,使用起来非常方便。本文将介绍 afselectbox 的安装过程、配置方法和使用...

    3 年前
  • npm 包 graph-service-legacy 使用教程

    背景 在前端开发中,经常需要使用图形展示数据的需求,而 graph-service-legacy 就是一款非常好用的 npm 包,它可以帮助我们轻松地展示复杂数据。

    3 年前
  • npm 包 generator-bitrix-tools 使用教程

    在前端开发中,Bitrix 是一种常用的内容管理框架,提供了许多重要的工具和API,使得开发者可以轻松管理网站和应用程序。 NPM 包 generator-bitrix-tools 为 Bitrix ...

    3 年前
  • npm 包 gtfo 使用教程

    在开发前端项目的过程中,我们经常会遇到一些不必要的警告和错误信息。这些信息对于开发过程会产生很大的干扰,同时降低了开发效率。而在此时,npm 包 gtfo 就可以派上用场了。

    3 年前
  • npm 包 json-convert 使用教程

    在前端开发中,我们常常需要处理 JSON 数据。然而,有时候我们需要将 JSON 数据转换为不同的格式,比如将 JSON 转换为 XML 或 CSV,或者将 JSON 数据进行格式化或加密等操作。

    3 年前
  • npm 包 alb3rt-sensors-hub 使用教程

    简介 alb3rt-sensors-hub 是一个 npm 包,它提供一个 JavaScript API 来与 alb3rt-sensors-hub 通信。alb3rt-sensors-hub 是一个...

    3 年前
  • npm 包 react-canvas-page 使用教程

    简介 react-canvas-page 是一个基于 React 的可定制性强、性能优异的 Canvas 组件库。它可以帮助开发者轻松实现多场景复杂交互效果,并满足高并发下的渲染需求。

    3 年前
  • `npm` 包 `alb3rt-sensor` 使用教程

    alb3rt-sensor 是一个使用简便、稳定可靠的传感器管理工具,通过该工具我们可以实现非常多样化的传感器数据采集、整理和处理等操作。在本篇文章中,我们将详细介绍如何使用 alb3rt-senso...

    3 年前
  • npm包react-js-diagram使用教程

    在前端开发中,图表和流程图是非常重要的组件。npm包react-js-diagram是一个基于React的JavaScript库,它提供了一个简单易用的方式用于创建可定制性较高的流程图和设计器。

    3 年前
  • npm包veams-redux-blueprint使用教程

    介绍 veams-redux-blueprint是一个用于快速生成基于React和Redux的应用程序模板的脚手架工具。它提供了一套可用的目录结构和配置,减少了应用程序初始化的时间,使开发人员可以更快...

    3 年前
  • npm 包 charto-3d 使用教程

    前言 在现代 web 开发中,数据的展现是非常重要的一部分。而图表作为一种常见的数据展现方式,是每一个前端工程师都需要掌握的技能之一。在本篇文章中,我们将介绍 npm 包 charto-3d,它拥有强...

    3 年前
  • npm 包 dbio-mysql 使用教程

    引言 在前端开发过程中,使用数据库是非常常见的需求,而 mysql 数据库的使用更是最为广泛的一种数据库,市面上也有很多的 mysql 数据库客户端,其中 dbio-mysql 是一款基于 promi...

    3 年前
  • npm 包 eslint-config-plat 使用教程

    什么是 eslint-config-plat? eslint-config-plat 是一个基于 ESLint 的 JavaScript 代码风格检查工具,它是以 Airbnb 的 JavaScrip...

    3 年前
  • npm 包 regular-color 使用教程

    前言 正则表达式是前端开发中常用的一种工具,用于匹配需要的文本信息。而不同的文本信息往往需要不同的颜色进行标识,这就需要使用到颜色选择器来获取相应的颜色值。为了方便开发人员进行前端开发,已经有了一些比...

    3 年前
  • npm 包 tscli 使用教程

    随着前端技术的不断发展,TypeScript 逐渐成为了前端领域的重要语言之一。为了更好地解决 TypeScript 的开发问题,开发者推出了许多优秀的开源工具,其中就包括了 npm 包 tscli。

    3 年前
  • npm 包 polite-asset-loader 使用教程

    近年来,前端开发中的图片、视频等资源文件越来越大,加载速度也成了重要的性能优化点之一。polite-asset-loader 是一款基于 webpack 的前端资源懒加载工具,可以帮助我们优化资源加载...

    3 年前
  • npm 包 ember-simple-auth-u2f 使用教程

    在现今的互联网环境中,安全性的保障是至关重要的,而两步验证(2FA)是一种普遍的加强安全性的方法。其中 U2F 是 2FA 的一种常用方式。ember-simple-auth-u2f 是一个基于 Em...

    3 年前

相关推荐

    暂无文章