React-Navigation 导航综合应用

React-Navigation 是 React Native 中常用的导航库,它提供了丰富的导航组件和 API,能够帮助我们轻松地实现各种导航场景。本文将详细介绍 React-Navigation 的使用和应用,包括 Stack Navigator、Tab Navigator、Drawer Navigator 和 Navigation Actions 等内容。

安装 React-Navigation

首先,我们需要在项目中安装 React-Navigation:

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

然后根据需要安装相应的导航组件,如 Stack Navigator:

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

Stack Navigator

Stack Navigator 是 React-Navigation 中最常用的导航组件之一,它可以实现类似于原生应用的页面堆栈导航,并支持跨页面传递数据。

基本用法

在使用 Stack Navigator 之前,我们需要先创建一个 Stack Navigator 对象:

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

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

然后就可以通过 Stack.NavigatorStack.Screen 来定义导航栏和页面组件了:

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

其中,HomeScreenDetailsScreen 分别是我们要导航的两个页面组件。

传递参数

Stack Navigator 支持在页面之间传递参数,我们可以通过 navigation.navigate 方法来传递参数:

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

在接收页面中,我们可以通过 route.params 来获取参数:

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

自定义导航栏

我们还可以自定义导航栏的样式和内容,例如修改标题和添加按钮:

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

Tab Navigator

Tab Navigator 可以实现底部标签栏导航,常用于切换不同功能模块的页面。

基本用法

与 Stack Navigator 类似,我们需要先创建一个 Tab Navigator 对象:

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

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

然后通过 Tab.NavigatorTab.Screen 来定义标签和页面组件:

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

自定义标签

我们可以自定义标签的样式和内容,例如修改图标和添加角标:

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

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