热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用ReactNativePart#3构建WordPress应用:导航

本系列旨在展示我如何使用react-native构建一个应用程序以服务WordPress博客中的内容。由于我的博客谈论的是本机反应,因此该系列和文章相互联系。我们将学

本系列旨在展示我如何使用react-native构建一个应用程序以服务WordPress博客中的内容。 由于我的博客谈论的是本机反应,因此该系列和文章相互联系。 我们将学习如何设置许多使我们的生活舒适的程序包,并学习如何处理WordPress API。 在此,本书中讨论的最突出的功能是深色主题,脱机模式,无限滚动等。 您可以在本系列中找到更多。 本教程系列的灵感来自instamobile的React Native App模板

如果想从头开始学习,可以在下面找到本教程系列的所有先前部分:

  • 使用React Native#1构建WordPress客户端应用程序:概述
  • 使用React Native#2构建WordPress客户端应用程序:设置环境

现在,我们需要使用所有文件和文件夹来组织我们的项目结构,并设置导航。

为此,我们将安装react-navigation软件包版本4及其所有必需的依赖软件包。 最近,反应导航软件包提供的大多数组件和模块已被分为不同的软件包。 因此,我们还需要安装其他软件包才能使导航功能完全正常运行。 为此,我们需要在项目存储库中运行以下命令:

yarn add react-native-gesture-handler react-native-reanimated react-native-screens

在这里,我们已经安装了react-navigation软件包以及react-navigation-stack和react-navigation-tabs软件包。 react-navigation-stack程序包使我们能够创建应用程序屏幕的导航器堆栈。 react-navigation-tabs软件包使我们能够在主屏幕上创建底部的标签导航。

现在,我们还需要安装必需的依赖项才能正确运行react-navigation软件包,因此,我们还需要安装以下软件包:

react-native link

在这里,我们安装了三个组件,以使响应导航平稳运行。 对于Android,某些软件包需要一些额外的配置。 为此,我们可以按照文档中的说明进行操作。 并且,对于Android,如果react-native的版本小于0.60,则可能需要链接软件包。 为此,我们可以为每个包运行以下代码:

react-native link

如果是iOS,我们需要导航到“ ./ios/”文件夹,然后运行以下命令:

cd ios ; pod install

要完成Android的react-native-gesture-handler的安装,请对MainActivity.java进行以下修改:

package com.reactnavigation.example;import com.facebook.react.ReactActivity;+ import com.facebook.react.ReactActivityDelegate;+ import com.facebook.react.ReactRootView;+ import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;public class MainActivity extends ReactActivity {@Overrideprotected String getMainComponentName () {return "Example" ;}+ @Override+ protected ReactActivityDelegate createReactActivityDelegate () {+ return new ReactActivityDelegate( this , getMainComponentName()) {+ @Override+ protected ReactRootView createRootView () {+ return new RNGestureHandlerEnabledRootView(MainActivity. this );+ }+ };+ }}

然后,我们可以在相应的模拟器中重新运行我们的项目。

对于这些屏幕,我们将首先创建四个屏幕,如下面的屏幕快照所示:

然后,我们需要向每个屏幕文件添加默认的react native模板。 下面的代码段提供了Bookmark.js文件的默认react本机代码:

import React, {Component} from 'react' ;import {View, Text} from 'react-native' ;class Bookmark extends Component {constructor (props) {super (props);this .state = {};}render() {return ( Bookmark );}}export default Bookmark;

同样,我们可以仅在更改类名称的情况下将默认模板添加到每个屏幕。

接下来,我们需要打开App.js文件并进行以下导入:

import React, { Component } from 'react' ;import {createAppContainer, createSwitchNavigator} from 'react-navigation' ;import {createBottomTabNavigator} from 'react-navigation-tabs' ;import {createStackNavigator} from 'react-navigation-stack' ;import Home from './src/screens/Home' ;import Categories from './src/screens/Categories' ;import Setting from './src/screens/Setting' ;import Bookmark from './src/screens/Bookmark' ;

在这里,我们从下面安装的包中导入了配置导航所需的各个组件。 我们还导入了屏幕文件。

然后,我们将使用react-navigation-tabs包中的createBottomTabNavigator函数创建底部的标签导航器。 下面的代码段提供了总体实现:

const DashboardTabNavigator = createBottomTabNavigator({HomePage : {screen : Home,navigationOptions : {tabBarLabel : 'Home' ,},},Categories : {screen : Categories,navigationOptions : {tabBarLabel : 'Categories' ,},},Bookmark : {screen : Bookmark,navigationOptions : {tabBarLabel : 'BookMark' ,},},Setting : {screen : Setting,navigationOptions : {tabBarLabel : 'Setting' ,},},},{navigationOptions : ( {navigation} ) => {const {routeName} = navigation.state.routes[navigation.state.index];return {headerTitle : routeName};},},);

在这里,我们还定义了底部标签导航器中的每个屏幕以及图标。 然后,我们还在navigationOptions对象中为每个路由配置了标题。

现在,我们需要创建堆栈导航器并向其添加底部导航器。 为此,我们需要利用react-navigation-stack包提供的createStackNavigator函数,如下面的代码片段所示:

const StackNavigator = createStackNavigator({DashboardTabNavigator : DashboardTabNavigator,});export default createAppContainer(StackNavigator);

然后,最后,我们需要注册我们的堆栈导航器以从react-navigation包中创建createAppContainer方法并将其导出。

因此,我们将在仿真器屏幕中获得以下结果:

摘要

在本章中,我们学习了如何使用所有依赖包来设置react-navigation包。 然后,使用这些软件包,我们学习了如何在项目中设置底部的标签导航。

From: https://hackernoon.com/build-a-wordpress-app-with-react-native-3-the-navigation-qs1r32je



推荐阅读
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
author-avatar
zzzzzzzzssss
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有