npm 包 redux-simple-form 使用教程

阅读时长 11 分钟读完

Redux 是一个非常流行的 JavaScript 应用程序状态管理工具。在任何 React 和 Redux 应用程序中,表单是一个关键组件。使用 Redux 管理表单状态可能会变得很棘手。这就是为什么 Redux Simple Form 这个 npm 包很受欢迎的原因。这个包可以极大地简化表单的管理和状态更新。

安装

首先,在终端中运行以下命令安装 redux-simple-form 包:

接下来,确保在应用程序中添加了 Redux 依赖项。如果未安装 Redux 依赖项,请运行以下命令:

使用

在使用 redux-simple-form 包之前,需要有一个 Redux store 和一些实例化的 Redux action。让我们首先创建一个 Redux store 和一些 action。

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

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

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

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

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

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

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

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

我们创建了一个名为 formReducer 的 reducer,并将其添加到了 rootReducer 中。我们的应用程序将具有如下应用程序状态:

同时,我们的 reducer 也限定了处理从 action 对象中的 field 和 value 属性传递的值的方式。现在我们已经拥有了一个 Redux store 和 action,让我们看看如何使用 redux-simple-form。

让我们创建一个名为 ContactForm 的 React 组件,并根据需要将其导出。

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

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

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

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

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

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

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

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

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

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

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

在这里,我们根据需要从 Redux store 中获取 field 值,并将其传递给表单传入的 handleInputChange 处理程序。这个处理程序会向 Redux stor dispatch 一个 changeInputAction action,以更新特定 field 的值。

现在,我们可以使用 ContactForm 组件来呈现一个包含三个输入字段的表单。这个表单将更新 Redux store 中的值,并在每次触发输入值的变化时发送一个 action。

示例代码

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

在本教程中,我们学习了如何使用 redux-simple-form 包来管理 React 表单状态。我们创建了一个可用于设置 Redux store 初始状态、初始化 store 和创建新的 Redux action 的代码段。最后,我们将创建的 ContactForm 组件与 Redux store 进行了连接,以控制表单的状态。Redux Simple Form 的使用有助于编写清晰、可维护且可扩展的代码,并帮助您管理复杂表单的状态。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067008e361a36e0bce8b58

纠错
反馈