npm 包 react-native-gesture-wrapper 使用教程

阅读时长 8 分钟读完

前言

在 React Native 开发中,手势交互是非常常见也非常重要的。虽然 RN 自带的手势交互 API 也很不错,但是部分情况下需要更加自定义化的操作,这时候就需要一些开源的第三方插件来完成我们的需求。本文主要讲解一个 npm 包:react-native-gesture-wrapper 的使用教程及其相关技术知识。

介绍

react-native-gesture-wrapper 是一款专门为 React Native 开发者打造的手势交互库,它基于 PanResponder 库实现,具有以下特点:

  • 支持在一个组件内处理多个手势操作;
  • 支持处理不同方向和类型的手势操作;
  • 支持不同触发条件的手势操作。

下面我们就来深入探讨一下如何使用它。

安装

在项目目录下打开终端或命令行,执行以下命令即可安装:

使用

在需要使用手势操作的组件中引入 react-native-gesture-wrapper,然后在组件的 render 函数中加入 GestureWrapper 组件。GestureWrapper 组件的子组件即为需要触发手势操作的组件,例如:

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

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

在子组件中添加对应的手势操作,例如:

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

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

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

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

上面代码中,我们在 GestureWrapper 组件中添加了 onSwipeLeftonSwipeRight 属性并分别绑定了 handleSwipeLefthandleSwipeRight 两个自定义函数。这两个函数在手势操作完成后会立即执行并输出对应的信息到控制台中。

API

GestureWrapper 支持多种类型和方向的手势操作,在这里仅列出常用的一些属性及其使用方法,更加详细的 API 可以参考官方文档

onSwipeLeft

当用户从右向左滑动时触发。

onSwipeRight

当用户从左向右滑动时触发。

onSwipeUp

当用户从下向上滑动时触发。

onSwipeDown

当用户从上向下滑动时触发。

onPanResponderGrant

响应手势操作开始的事件。

onPanResponderMove

响应手势操作进行时的事件。

onPanResponderRelease

响应手势操作结束的事件。

示例代码

以下是一个基于 react-native-gesture-wrapper 实现的一个滑动删除列表的示例代码:

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

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

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

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

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

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

上面代码中,我们在父组件 SwipeList 中循环渲染了一个包含多个子项的列表,并为每个子项添加了 onSwipeLeft 属性,用于响应滑动删除的操作;当用户从右向左滑动某个子项时,执行 handleSwipeLeft 函数删除该项,并更新状态重新渲染列表。

总结

本文主要讲解了 npm 包 react-native-gesture-wrapper 的使用教程及其相关知识点,包括如何实现普通手势操作和如何应用在一个实际示例中。希望读者在阅读本文后能够更加简单快捷地使用该库,并在实际开发中得到更好的体验。

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

纠错
反馈