热门标签 | 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



推荐阅读
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了一种在 MySQL 客户端执行 NOW() 函数时出现时间偏差的问题,并详细描述了如何通过配置文件调整时区设置来解决该问题。演示场景中,假设当前北京时间为2023年2月17日19:31:37,而查询结果显示的时间比实际时间晚8小时。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
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社区 版权所有