react: navigator
1、page js
import React from "react";
import {Link} from "react-router-dom";
import LoginUser from "service/login-service/LoginUser";
import "./index.scss"; const _loginUser = new LoginUser();
const isLogin = _loginUser.hasLogin(); const navItems = [];
const navigators = []; class Navigator extends React.Component { constructor(props) {
super(props);
this.state = {
currentType: props.nav
} } activeItemClass(item) {
return this.state.currentType === item.type ? 'active' : '';
} toState(item) {
this.setState({
currentType: item.type
});
} render() {
const navigator = (
<ul className="nav nav-tabs">
{navItems.map((item, index) => {
return (
<li key={'li_' + index} className={this.activeItemClass(item)}>
<Link to={item.state} onClick={() => this.toState(item)}>{navigators[item.type]}</Link>
</li>
)
}
)}
</ul>);
return (<div className="app-navigator">{isLogin ? navigator : null}</div>)
}
} export default Navigator;
import React from "react";
import {Link} from "react-router-dom";
import {connect} from "react-redux";
import MenuService from "service/MenuService";
import LoginUser from "service/login-service/LoginUser";
import {fetchMenuData} from "reduxModel/actions/MenuAction";
import "./index.scss"; const _menuService = new MenuService(); const _loginUser = new LoginUser();
const isLogin = _loginUser.hasLogin(); const mapStateToProps = state => {
return {
menuData: state.MenuReducer.data
}
};
const mapDispatchToProps = {
fetchMenuData: fetchMenuData,
}; class Navigator extends React.Component { constructor(props) {
super(props);
this.state = {
currentType: props.nav
} } componentDidMount() {
this.props.fetchMenuData();
} activeItemClass(item) {
return this.state.currentType === item.type ? 'active' : '';
} toState(item) {
this.setState({
currentType: item.type
});
} render() {
const {menuData} = this.props;
const navigator = (
<ul className="nav nav-tabs">
{menuData &&
_menuService.getModules(menuData.menuTree).map((item, index) => {
return (
<li key={'li_' + index} className={this.activeItemClass(item)}>
<Link to={item.state} onClick={() => this.toState(item)}>
{menuData.navigators[item.type]}
</Link>
</li>
)
}
)}
</ul>);
return (<div className="app-header-nav">{isLogin ? navigator : null}</div>)
}
} const NavigatorContainer = connect(
mapStateToProps,
mapDispatchToProps
)(Navigator); export default NavigatorContainer;
2、style
.app-header-nav {
position: relative;
width: $body-min-width;
margin: auto; .nav-tabs {
position: absolute;
right:;
bottom: 1px;
border-bottom: none; > li {
> a {
margin-right:;
border: $border;
border-right: none;
border-radius:;
outline: none;
background-color: $item-active-bg-color;
text-align: center; &:hover {
border-color: $border-color;
color: $title-color;
}
} &:last-child > a {
border-right: $border;
} & {
border-top: 3px solid $bg-color;
} &.active {
border-top: 3px solid $primary-color; > a {
&,
&:hover,
&:focus {
border-top-color: #fff;
border-bottom-color: #fff;
background-color: #fff;
color: $primary-color;
font-weight: bold;
}
} + li > a {
&,
&:hover,
&:focus {
border-left: none;
}
}
}
}
}
}
react: navigator的更多相关文章
- React Native之 Navigator与NavigatorIOS使用
前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...
- [转] React Native Navigator — Navigating Like A Pro in React Native
There is a lot you can do with the React Native Navigator. Here, I will try to go over a few example ...
- React Native填坑之旅 -- 使用react-navigation代替Navigator
Navigator已经被React Native废弃了.也许你可以在另外的一个依赖库里react-native-deprecated-custom-components里找到.不过既然官方推荐的是re ...
- React Native之Navigator
移动应用很少只包含一个页面.从你添加第二个页面开始,就得考虑如何管理多个页面间的跳转了. 导航器正是为此而生.它可以管理多个页面间的跳转,也包含了一些常见的过渡动画,包括水平翻页.垂直弹出等等. Na ...
- React Native常用组件之TabBarIOS、TabBarIOS.Item组件、Navigator组件、NavigatorIOS组件、React Navigation第三方
以下内容为老版本React Native,faceBook已经有了新的导航组件,请移步其他博客参考>>[我是传送门] 参考资料:React Navigation react-native ...
- React Native学习之自定义Navigator
Navigator还是最常用的组件, 所以自己封装了一个, 使用起来也比较简单, 如下: 首先导入组件 var MLNavigator = require('../Lib/MLNavigator'); ...
- react native的Navigator组件示例
import React, {Component} from 'react';import {ScrollView, StyleSheet, Text, View, PixelRatio} from ...
- React Native导航器Navigator
React Native导航器Navigator 使用导航器可以让你在应用的不同场景(页面)间进行切换.导航器通过路由对象来分辨不同的场景.利用renderScene方法,导航栏可以根据指定的路由来渲 ...
- React Native商城项目实战03 - 包装Navigator
1.在Home目录下新建首页详细页HomeDetail.js /** * 首页详情页 */ import React, { Component } from 'react'; import { App ...
随机推荐
- 【Myeclipse设置】MyEclipse取消Show in Breadcrumb的方法
有时不小心把快捷导航整出来,对于本来就很小的编辑空间来讲就很痛苦了,下面的方法可行,本人亲自试验过. 参考地址:百度文库中的解决方法 在最后用户通过点击出来的图标 ,就可以自如的控制出现和消失了.
- SCSS入门
1. CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等诸多好处 ...
- [WebException: The underlying connection was closed: The message length limit was exceeded.]解决方法
[WebException: The underlying connection was closed: The message length limit was exceeded.] Syste ...
- 什么是EventLoop
Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制. JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题. 本文参考C. Aaron Cois的<Und ...
- SQL 函数以及SQL 编程
1.数学函数:操作一个数据,返回一个结果 --去上限: ceiling ☆select --去下限:floor ☆select floor(price) from car --ABS 绝对值 --PI ...
- Docker 使用指南 —— 基本操作
Docker 是一个能够把开发应用程序自动部署到容器的开源引擎.它由Docker公司的团队编写,基于Apache 2.0开源协议授权.它提供了一个简单.轻量的建模方式,使开发生命周期更高效快速,鼓励了 ...
- var和let/const的区别
let和const是 ES6 新增的命令,用于声明变量,这两个命令跟 ES5 的var有许多不同,并且let和const也有一些细微的不同,再认真阅读了阮一峰老师的文档后,发现还是有一些不知道的细节. ...
- 仿京东Tab商品切换
在线演示 本地下载
- 一种BIM缺失多态性介导的酪氨酸激酶抑制剂的耐药性
论文名称:A common BIM deletion polymorphism mediates intrinsic resistance and inferior responses to tyro ...
- computeIfAbsent
// java8之前,若从map中根据key获取value,如果key不存在,则添加,这一系列操作可以是下面的操作 Object key = map.get("key"); if ...