html京东快速购物导航,基于React Native构建的仿京东客户端(五)如何实现首页 分类 发现 购物车 我的 Tab导航页面..._小兔usako的博客-程序员秘密

技术标签: html京东快速购物导航  

新建4个用红色方框标识的文件,如下图所示:

6dfa3915f40dd31fdd667bd9a5e0296c.png

myths-Mac:JdApp myth$ yarn add react-native-tab-navigator

CartPage.js文件完整的代码如下:

import React, { Component } from 'react';

import {

StyleSheet,

Text,

View

} from 'react-native';

export default class CartPage extends Component {

render() {

return (

CartPage

);

}

}

const styles = StyleSheet.create({

container: {

flex: 1,

justifyContent: 'center',

alignItems: 'center',

backgroundColor: '#F5FCFF',

}

});

CategoryPage.js文件完整的代码如下:

import React, { Component } from 'react';

import {

StyleSheet,

Text,

View

} from 'react-native';

export default class CategoryPage extends Component {

render() {

return (

CategoryPage

);

}

}

const styles = StyleSheet.create({

container: {

flex: 1,

justifyContent: 'center',

alignItems: 'center',

backgroundColor: '#F5FCFF',

}

});

DiscoverPage.js文件完整的代码如下:

import React, { Component } from 'react';

import {

StyleSheet,

Text,

View

} from 'react-native';

export default class DiscoverPage extends Component {

render() {

return (

DiscoverPage

);

}

}

const styles = StyleSheet.create({

container: {

flex: 1,

justifyContent: 'center',

alignItems: 'center',

backgroundColor: '#F5FCFF',

}

});

PersonalPage.js文件完整的代码如下:

import React, { Component } from 'react';

import {

StyleSheet,

Text,

View

} from 'react-native';

export default class PersonalPage extends Component {

render() {

return (

DiscoverPage

);

}

}

const styles = StyleSheet.create({

container: {

flex: 1,

justifyContent: 'center',

alignItems: 'center',

backgroundColor: '#F5FCFF',

}

});

App.js文件完整的代码如下:

import React, { Component } from 'react';

import {

StyleSheet,

Text,

View,

Image

} from 'react-native';

import Header from './Header';

import HomePage from './home/HomePage';

import CategoryPage from './category/CategoryPage';

import DiscoverPage from './discover/DiscoverPage';

import CartPage from './cart/CartPage';

import PersonalPage from './personal/PersonalPage';

import TabNavigator from 'react-native-tab-navigator';

export default class App extends Component {

constructor(props) {

super(props);

this.state = {

selectedTab: 'home',

homeBadgeText:'15',

categoryBadgeText:'',

discoverBadgeText:'',

cartBadgeText:'',

personalBadgeText:'',

}

}

render() {

return (

selected={this.state.selectedTab === 'home'}

selectedTitleStyle={ {color: "#3496f0"}}

renderIcon={() => }

renderSelectedIcon={() => }

renderBadge={() =>

this.state.homeBadgeText === ''? null:

{this.state.homeBadgeText}

}

onPress={() => this.setState({selectedTab: 'home'})}>

selected={this.state.selectedTab === 'category'}

selectedTitleStyle={ {color: "#3496f0"}}

renderIcon={() => }

renderSelectedIcon={() => }

renderBadge={() =>

this.state.categoryBadgeText === ''? null:

{this.state.categoryBadgeText}

}

onPress={() => this.setState({selectedTab: 'category'})}>

selected={this.state.selectedTab === 'discover'}

selectedTitleStyle={ {color: "#3496f0"}}

renderIcon={() => }

renderSelectedIcon={() => }

renderBadge={() =>

this.state.discoverBadgeText === ''? null:

{this.state.discoverBadgeText}

}

onPress={() => this.setState({selectedTab: 'discover'})}>

selected={this.state.selectedTab === 'cart'}

selectedTitleStyle={ {color: "#3496f0"}}

renderIcon={() => }

renderSelectedIcon={() => }

renderBadge={() =>

this.state.cartBadgeText === ''? null:

{this.state.cartBadgeText}

}

onPress={() => this.setState({selectedTab: 'cart'})}>

selected={this.state.selectedTab === 'personal'}

selectedTitleStyle={ {color: "#3496f0"}}

renderIcon={() => }

renderSelectedIcon={() => }

renderBadge={() =>

this.state.personalBadgeText === ''? null:

{this.state.personalBadgeText}

}

onPress={() => this.setState({selectedTab: 'personal'})}>

);

}

}

const styles = StyleSheet.create({

container: {

flex: 1,

},

tab: {

height: 54,

backgroundColor: '#303030',

flexDirection: 'row',

},

tabIcon: {

width: 30,

height: 35,

resizeMode: 'stretch',

}

});

App.js文件中新增加的代码下图已用方框标出:

583b7c4f329fc39c21f27f67a768e389.png

安卓和苹果手机在模拟器中运行的效果截图如下:

520621b1a7c90f3d1e6b0b8bcbda6bff.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_29491635/article/details/117875743

智能推荐

HTML(3)HTML文档头部信息_weixin_30550271的博客-程序员秘密

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <he...

CloudCompare中常见数据结构_JustNow_Man的博客-程序员秘密

ccccHObject::Container //CCLib::Neighbourhood //CCLib::SquareMatrixd //常见点云类型及作用:ccGenericPointCloud // 包含RGB颜色、法线等特性的点云结构;ccPointCloudChunkedPointCloudCCLib::ReferenceCloud* rc = ge...

Jetpack Compose开篇 之 HelloWorld_黄林晴的博客-程序员秘密

前言此前我更新了Jetpack Architecture系列的文章,如果你还不了解Jetpack,可以移步至 Android JetPack系列文章 ,持续更新中从即日起,我将开始持续更新Jetpack Compose系列的文章,Compose将会是原生开发的下一个改变风口,原创不易,感谢支持!Jetpack Compose是什么Jetpack Compose 是用于构建原生 Android 界面的新工具包。它基于声明性编程模型,因此您只需描述界面的外观,Compose 会负责完成其余工作,

windows 2012 IIS 部署 .net core HTTP Error 502.5 - Process Failure 错误解决办法_weixin_30740581的博客-程序员秘密

安装系统补丁:2012 R2对应》Windows8.1-KB2999226-x64.msu下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=49063转载于:https://www.cnblogs.com/weiweithe/p/9719160.html...

Redis BitMap 总结_fenggj19870的博客-程序员秘密

BitMap是什么Bitmap(即Bitset)    Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),bitmap就是通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。Redis中的BitMapRedis从2.2.0版本开始新增了setbit,getbit,bitcount等几个bitmap相关命令。虽然是新命令,但是并没...

随便推点

yyyy/M/d h:m:s 转换成 yyyy-MM-dd hh:mm:ss_普通网友的博客-程序员秘密

var arrTime = (dtime).replace("/", "-").replace("/", "-"); var deTime = arrTime.split(" "); var ss = deTime[0]; var s1 = ss.split("-"...

睡眠手环APP开发优势特点_安睡手环连接手机app的好处_sidu666的博客-程序员秘密

睡眠手环APP开发,睡眠手环APP开发优势,睡眠手环APP开发特点。睡眠手环在现阶段的作用、样式这些都是在逐步完善,对于此事也是有很多的用户喜爱这种的一个机器设备,对于用户的睡眠手环APP开发设计也慢慢盛行火爆起来。一、睡眠手环APP开发设计简述睡眠手环APP开发设计完成了一个方便快捷式的线上平台,让用户可以更好地感受到智能产品产生的方便快捷,合乎智能化的智能产品机器设备发展趋势行情。二、睡眠手环APP开发设计可以提供哪些作用?1、智能产品大型商场平台针对用户而言,睡眠手环可以充分发挥很

tcmalloc分配内存引起的coredump_tcmalloc::centralfreelist::fetchfromspans_hk78787878的博客-程序员秘密

现象线上的服务出现coredump,堆栈为:#0 0x000000000045d145 in GetStackTrace(void**, int, int) ()#1 0x000000000045ec22 in tcmalloc::PageHeap::GrowHeap(unsigned long) ()#2 0x000000000045eeb3 in tcmalloc::Page...

sz与rz命令_yphacker的博客-程序员秘密

一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地;   与ssh有关的两个命令可以提供很方便的操作:   sz:将选定的文件发送(send)到本地机器   rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)

VDI接口工作方式及具体实现_xb_0916的博客-程序员秘密

转载自:http://www.cnblogs.com/D-Tec/archive/2013/03/01/2939311.html〇、VDI接口工作方式Spice中的VDI(Virtual Device Interfaces)是一个经过专门设计的接口规范,其设计哲学可以推广到很多需要做功能扩展的软件项目中。此类接口设计的主要目标是在尽量不改变原有代码的情况下,通过动态库的方式来为原有

Android各个版本的区别_安卓版本区别_谷子呢的博客-程序员秘密

2008年--至今Android 1.5(Cupcake纸杯蛋糕):智能虚拟键盘;使用widgets实现桌面个性化;在线文件夹(Live Folder)快速浏览在线数据;视频录制和分享;图片上传;更快的标准兼容浏览器;Voice search 语音搜索;立体声蓝牙和免提电话 Android 1.6(Donut甜甜圈):完全重新设计的Android Market,可以显示

推荐文章

热门文章

相关标签