热门标签 | 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 文章详情模块与交互功能实现
    本文详细介绍了如何在黑马头条项目中配置文章详情模块的路由、获取和展示文章详情数据,以及实现关注、点赞、不喜欢和评论功能。通过这些步骤,您可以全面了解如何开发一个完整的前端文章详情页面。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 在网站制作中随时可用的10个 HTML5 代码片段
    HTML很容易写,但创建网页时,您经常需要重复做同样的任务,如创建表单。在这篇文章中,我收集了10个超有用的HTML代码片段,有HTML5启动模板、空白图片、打电话和发短信、自动完 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • LeetCode 690:计算员工的重要性评分
    在解决LeetCode第690题时,我记录了详细的解题思路和方法。该问题要求根据员工的ID计算其重要性评分,包括直接和间接下属的重要性。本文将深入探讨如何使用哈希表(Map)来高效地实现这一目标。 ... [详细]
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社区 版权所有