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

如何使用ReactNativePart#8构建WordPress客户端应用程序:SinglePost视图

由于我们在主屏幕中具有文章列表,因此我们也需要显示完整的文章。为此,我们将创建SinglePost屏幕,该屏幕将显示整个文章。在这里&#x

由于我们在主屏幕中具有文章列表,因此我们也需要显示完整的文章。 为此,我们将创建SinglePost屏幕,该屏幕将显示整个文章。 在这里,我们将学习如何从WordPress API获取单个文章。

首先,我们需要将SinglePost屏幕添加到App.js文件中的导航器中。 为此,我们需要导入SinglePost屏幕并将其添加到堆栈导航器中,如下面的代码片段所示:

import SinglePost from './src/screens/SinglePost' ;const StackNavigator = createStackNavigator({DashboardTabNavigator : DashboardTabNavigator,SinglePost : SinglePost,
});export default createAppContainer(StackNavigator);

然后,我们需要将导航从主屏幕添加到SinglePost屏幕。 当我们单击主屏幕文章列表中的任何文章卡片时,其想法是导航到SinglePost屏幕。 如此一来,文章中的完整信息将显示在SinglePost屏幕中。 为此,我们需要以包裹FlatList通过使用模板TouchableOpacity分量和导航配置添加到它的onPress事件如显示在下面的代码片断:

this .props.navigation.navigate( 'SinglePost' , {post_id : item.id,})}>style = {{shadowOffset: { width: 5 , height: 5 },width: ' 90 %',borderRadius: 12 ,alignSelf: ' center ',marginBottom: 10 ,}}>.................................. // other code

实施SinglePost屏幕

现在,我们将实现SinglePost屏幕的UI。 为此,我们需要创建一个名为SinglePost.js在新文件'./screens/'文件夹中。

在SinglePost屏幕中,我们要显示文章的封面图像和文章的全部内容,以及作者的头像,文章的名称和发布日期。

下面的代码段提供了SinglePost屏幕的整体实现:

import React from 'react' ;
import {Avatar,Button,Card,Title,Paragraph,List,
} from 'react-native-paper' ;
import HTML from 'react-native-render-html' ;
import {View,ScrollView,ActivityIndicator,Dimensions
} from 'react-native' ;
import moment from 'moment' ;export default class SinglePost extends React . Component {constructor (props) {super (props);this .state = {isloading : true ,post : [],};}

在这里,我们导入了构建SinglePost屏幕所需的必要软件包。 我们还定义了正在加载和发布的所需状态。

现在,我们需要使用fetch方法从WordPress API中获取相应的帖子。 首先,我们需要获取从主屏幕页面发送的帖子ID作为道具。 然后,使用它从API提取特定的帖子,如下面的代码片段所示:

componentDidMount() {this .fetchPost();
}
async fetchPost() {let post_id = this .props.navigation.getParam( 'post_id' )const response = await fetch(`https://kriss.io/wp-json/wp/v2/posts?_embed&include= ${post_id} `);const post = await response.json();this .setState({post : post,isloading : false ,});

在这里,我们已使用API​​提取了单个帖子,并以JSON格式对其进行了解析。 然后,我们将获取的post设置为post state变量,并将isloading状态更改为false。

现在,我们需要根据isloading状态显示帖子模板。 如果isloading状态为true,则显示ActivityIndi​​cator模板,该模板显示微调器加载器。 成功获取数据后,将显示发布模板,并且加载程序消失。 下面的代码段提供了总体实现:

render() {let post = this .state.post;if ( this .state.isloading) {return (style = {{paddingVertical: 20 ,borderTopWidth: 1 ,borderColor: '# CED0CE ',}}> );}return ( {return ();}}/>)});}
}

在这里,对于post模板,我们使用了react-native包和react-native-paper包中的不同组件。 父组件是ScrollView组件,它可以垂直滚动屏幕。 然后, ScrollView组件使用Card组件及其子组件包装模板。

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

如我们所见,我们还成功地为SinglePost屏幕实现了整个UI。

摘要

在本章中,我们学习了如何实现SinglePost屏幕的整体UI。 首先,我们学习了如何通过单击主屏幕列表中的任何文章来设置到SinglePost屏幕的导航。 SinglePost屏幕显示单个文章的整体内容。 我们使用了react-native-paper中的不同组件来实现UI。 我们还在此屏幕上利用了时刻和react-native-render-html包。 最后,我们学习了如何使用fetch函数从WordPress API中获取单篇文章的数据。

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

From: https://hackernoon.com/build-wordpress-client-app-with-react-native-8-singlepost-px1j5328a



推荐阅读
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 本文是一篇翻译文章,介绍了async/await的用法和特点。async关键字被放置在函数前面,意味着该函数总是返回一个promise。文章还提到了可以显式返回一个promise的方法。该特性使得async/await更易于理解和使用。本文还提到了一些可能的错误,并希望读者能够指正。 ... [详细]
  • PeopleSoft安装镜像版本及导入语言包的方法
    本文介绍了PeopleSoft安装镜像的两个版本,分别是VirtualBox虚拟机版本和NativeOS版本,并详细说明了导入语言包的方法。对于Windows版本,可以通过psdmt.exe登录进入,并使用datamover脚本导入语言包。对于Linux版本,同样可以使用命令行方式执行datamover脚本导入语言包。导入语言包后,可以实现多种语言的登录。参考文献提供了相关链接以供深入了解。 ... [详细]
author-avatar
李桂平2402851397
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有