zoukankan      html  css  js  c++  java
  • React Native商城项目实战10

    1.新建一个MineMiddleView.js,专门用于构建中间的内容 

    /**
     * 个人中心中间内容设置
     */
    import React, { Component } from 'react';
    import {
        AppRegistry,
        StyleSheet,
        Text,
        View,
        Image,
        TouchableOpacity
    } from 'react-native';
    
    /**-------导入外部的json数据-------***/
    var MiddleData = require('./MiddleData.json');
    
    var MineMiddleView = React.createClass({
        render() {
            return (
                <View style={styles.container}>
                    {this.renderAllItem()}
                </View>
            );
        },
    
        renderAllItem(){
            // 定义组件数组
            var itemArr = [];
            // 遍历
            for(var i=0; i<MiddleData.length; i++){
                // 取出单独的数据
                var data = MiddleData[i];
                // 创建组件装入数组
                itemArr.push(
                    <InnerView key={i} iconName={data.iconName} title={data.title}/>
                );
            }
            // 返回
            return itemArr;
        }
    });
    
    // 里面的组件类
    var InnerView = React.createClass({
        getDefaultProps(){
            return{
                iconName: '',
                title:''
            }
        },
    
        render(){
            return(
                <TouchableOpacity activeOpacity={0.5} onPress={()=>{alert('0')}}>
                    <View style={styles.innerViewStyle}>
                        <Image source={{uri: this.props.iconName}} style={{40, height:30, marginBottom:3}}/>
                        <Text style={{color:'gray'}}>{this.props.title}</Text>
                    </View>
                </TouchableOpacity>
            );
        }
    });
    
    
    const styles = StyleSheet.create({
        container: {
            // 设置主轴的方向
            flexDirection:'row',
            alignItems: 'center',
            backgroundColor: 'white',
            // 设置主轴的对齐方式
            justifyContent:'space-around'
        },
    
        innerViewStyle:{
            70,
            height:70,
    
            // 水平和垂直居中
            justifyContent:'center',
            alignItems:'center'
        }
    });
    
    // 输出组件类
    module.exports = MineMiddleView;
    

    2.Mine.js里使用该组件 

    /**
     * 我的
     */
    import React, { Component } from 'react';
    import {
        AppRegistry,
        StyleSheet,
        Text,
        View,
        ScrollView
    } from 'react-native';
    
    /*======导入外部组件类======*/
    var MyCell = require('./CommonMyCell');
    var MiddleView = require('./MineMiddleView');
    
    // ES5
    var Mine = React.createClass({
        render() {
            return (
                <ScrollView style={styles.scrollViewStyle}>
                    <View style={{marginTop:20}}>
                        <MyCell
                            leftIconName="collect"
                            leftTitle="我的订单"
                            rightTitle="查看全部订单"
                        />
                        <MiddleView />
                    </View>
                    <View style={{marginTop:20}}>
                        <MyCell
                            leftIconName="draft"
                            leftTitle="钱包"
                            rightTitle="账号余额:¥100.88"
                        />
                    </View>
                    <View style={{marginTop:20}}>
                        <MyCell
                            leftIconName="voucher"
                            leftTitle="抵用券"
                            rightTitle="10张"
                        />
                    </View>
                    <View style={{marginTop:20}}>
                        <MyCell
                            leftIconName="mall"
                            leftTitle="积分商城"
                            rightTitle=""
                        />
                    </View>
                    <View style={{marginTop:20}}>
                        <MyCell
                            leftIconName="recommend"
                            leftTitle="今日推荐"
                            rightTitle=""
                        />
                    </View>
                </ScrollView>
            );
        }
    });
    
    const styles = StyleSheet.create({
        scrollViewStyle:{
           
        }
    });
    
    // 输出
    module.exports = Mine;
    

    3.效果图

    4.MiddleData.json

    [
      {"iconName":"order1", "title": "待付款"},
      {"iconName":"order2", "title": "待使用"},
      {"iconName":"order3", "title": "待评价"},
      {"iconName":"order4", "title": "退款/售后"}
    ]
    

    .

  • 相关阅读:
    【CSS】419- 彻底搞懂word-break、word-wrap、white-space
    【Webpack】418- 深度优化 Webpack 性能,翻倍构建性能
    【React】417- React中componentWillReceiveProps的替代升级方案
    巩固java(二)----JVM堆内存结构及垃圾回收机制
    巩固java(一)----java与对象
    Latex 公式换行问题,(换行,等号对齐)
    Android FoldingLayout 折叠布局 原理及实现(二)
    19.最省钱的app发短信方法
    Android FoldingLayout 折叠布局 原理及实现(一)
    18.app后端如何实现LBS
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7384715.html
Copyright © 2011-2022 走看看