【面向对象】关于利用数组对象的创建底部栏

/*eslint-disable*///底部导航栏组件import React from "react";import {render} from "react-dom";import "./compoments.less";import indexNo from ‘../images/index-no.png‘import indexYes from ‘../images/index-yes.png‘import shopNo from ‘../images/shop-no.png‘import shopYes from ‘../images/shop-yes.png‘import serviceNo from ‘../images/server-no.png‘import serviceYes from ‘../images/server-yes.png‘import myNo from ‘../images/my-no.png‘import myYes from ‘../images/my-yes.png‘

export default class BottomBar extends React.Component {    constructor(props) {        super(props);    }

state = {        bottomBar: [{            name: "index",            isActive: false,            icon: indexNo,            activeIcon: indexYes,            font: "首页",            url: "#/index"        }, {            name: "shop",            isActive: false,            icon: shopNo,            activeIcon: shopYes,            font: "门店",            url: "#/index"        }, {            name: "service",            isActive: false,            icon: serviceNo,            activeIcon: serviceYes,            font: "门店",            url: "#/service"        }, {            name: "my",            isActive: false,            icon: myNo,            activeIcon: myYes,            font: "我的",            url: "#/my"        }]    };

/**     * 页面开始获取哪个菜单属于被点击状态     */    componentWillMount() {        let _select = localStorage.getItem(‘select‘);        let {bottomBar} = this.state;        bottomBar.filter(item => {            if (item.name == _select) {                item.isActive = true            }        });        this.setState(            bottomBar        );    }

setItem(_item) {        localStorage.setItem(‘select‘, _item.name);        location.replace(_item.url);    }

render() {        const BottomBar = ()=> {            let {bottomBar} = this.state;            return (                <div className="tabBar">                    { bottomBar.map((i) =>                        <div id={i.name} className="bottom-common-line-div index" key={i.name}                             onClick={v => this.setItem(i,v)}>                            <div className="icon-img">                                <img src={i.isActive == true ? i.activeIcon : i.icon } />                            </div>                            <p>{i.font}</p>                        </div>                    )}

</div>            )        };        return (<BottomBar/>)

};

}
这样子后期修改/增加底部栏的个数 只需要在数组上做修改即可,包括后台对权限的管理,灵活性更大

原文地址:https://www.cnblogs.com/xyyyy/p/10273587.html

时间: 2024-10-09 19:19:32

【面向对象】关于利用数组对象的创建底部栏的相关文章

利用数组实现几张图片循环显示

2015-04-12 17:40:22 利用数组实现图片循环就是将图片放在数组中,然后循环显示 以四张图片为例 <script> //利用数组对象实现四张图片每隔5秒换一张的效果 var img=new Array();//创建数组对象 var index=0;//定义数组下标 img[0]=new Image(); img[0].src='../../../imgs/66.ico'; img[1]=new Image(); img[1].src='../../../imgs/68.ico';

JS 字符串对象 数组对象 函数对象 函数作用域

一.内置对象 object对象:ECMAScript 中的所有对象都由这个对象继承而来:Object 对象中的所有属性和方法都会出现在其他对象中 ToString() : 返回对象的原始字符串表示.ValueOf() : 返回最适合该对象的原始值.对于许多对象,该方法返回的值都与 ToString() 的返回值相同 11种内置对象 包括: Array ,String , Date, Math, Boolean, Number  Function, Global, Error, RegExp ,

JavaScript之String、Date、Number、Math、数组对象day0912

String对象: 创建对象的方式: 一:var str=new  String("字符串内容"); 二:var str="字符串内容"; String对象常用的方法: anchor()   生产锚点     blink()     为元素添加blink标签      charAt()     返回指定索引位置处的字符.     charCodeAt() 回一个整数,代表指定位置上字符的 Unicode 编码.     fontcolor()  把带有 COLOR

Foundation框架(3)数组对象及集合对象

数组对象NSArray 数组对象的创建: + (instancetype)array     //空数组 + (instancetype)arrayWithObject:(ObjectType)anObject     //一个对象元素的数组 + (instancetype)arrayWithObjects:(ObjectType)firstObj, - //多个对象元素的数组(最后一个参数为nil) 字面值: NSArray * arr = @[@"hello", @10, @YES

学习笔记:javascript内置对象:数组对象

1.数组对象的创建 1.设置一个长度为0的数组 var myarr=new array(); 2.设置一个长度为n的数组 var myarr=new arr(n); 3.声明一个赋值的指定长度的数组 var myarr=new myarr(1,2,3,4,5,6); 4.为数组元素赋值 arr[i]=值 变量名=数组变量[i]; 5.删除数组元素 delete myarr[1]; 2.常用函数 方法 描述 concat() 连接两个或更多的数组,并返回结果. join() 把数组的所有元素放入一

Java 对象的创建过程

类的初始化与实例化一个 Java 对象的创建过程往往包括类的初始化 和 实例化 两个阶段.Java 规范规定一个对象在可以被使用之前必须要被正确地初始化.在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化.在实例化一个对象时,JVM 首先会检查相关类型是否已经加载并初始化,如果没有,则 JVM 立即进行加载并调用类构造器完成类的初始化.Java 对象的创建方式一个对象在可以被使用之前必须要被正确地实例化.在 Java 程序中,有多种方法可以创建对象,最直接的一种就是使用 new 关

JS 面向对象之对象的创建

在学习了面向对象,我们了解了面向对象的三大特性:封装.继承.多态.下面我们需要了解对象的创建方式: 1 字面量创建方式 对象有很多描述方式,比如键值对(key--value)的集合.字典.工具包.对象的本质是对变量和函数进行封装,将变量封装成属性,函数封装为方法:这里我们就是采用字典的方式来创建对象,将属性和方法名作为key 1.1 创建一个书对象 var book = { name:"js入门教学", price:"¥34", author:"刘忻欢&q

2.10 C++利用构造函数限制对象的创建

参考: http://www.weixueyuan.net/view/6342.html 总结: 限制对象的创建.限制创建对象时能够按照我们需要的那样创建,而不能随意的创建对象. 类中显示地声明了任意一个构造函数,系统均不会再自动生成构造函数. 声明为private属性的构造函数,与声明为private属性的成员变量或普通成员函数一样,在类外同样是不能访问的 在上一节构造函数的例1中,我们提到,如果不声明默认构造函数book(),而只声明带参构造函数book(char *a, double p)

设计模式可复用面向对象软件设计基础之对象创建型模式—ABSTRACT FACTORY( 抽象工厂)

意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 适用性 在以下情况可以使用 Abstract Factory模式 ? 一个系统要独立于它的产品的创建.组合和表示时. ? 一个系统要由多个产品系列中的一个来配置时. ? 当你要强调一系列相关的产品对象的设计以便进行联合使用时. ? 当你提供一个产品类库,而只想显示它们的接口而不是实现时. 结构 模式结构图如下所示: Creator: 声明一个创建抽象产品对象的操作接口. ConcreteCreator:(Concrete