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 ...
随机推荐
- python 自动获取(打印)代码中的变量的名字字串
方法一: import inspectimport re def varname(p): for line in inspect.getframeinfo(inspect.currentframe() ...
- Hadoop的分布式架构改进与应用
1. 背景介绍 谈到分布式系统,就不得不提到Google的三驾马车:GFS[1],MapReduce[2]和BigTable[3]. 虽然Google没有开源这三个技术的实现源码,但是基于这三篇开源 ...
- Jupyter Notebook修改目标文件
默认的路径 如果没有修改配置文件,那么一般就在用户目录下面: 下面各处默认起始目标地址,以防有一天想改回来 I:\shujufenxi\python.exe I:\shujufenxi\cwp.py ...
- 解释一下python中的身份运算符
通过身份运算符‘is’和‘is not’,我们可以确定两个值是否相同 ')#False print(True is not False)#True
- 前端 and css小技巧
随意更改网页 重新格式化代码,解决缩进问题 https://q1mi.github.io/PythonBlog/post/about_frontend/ css margin: 0 auto 居中 文 ...
- JQuery Ajax调用WCF实例以及遇到的问题
1.遇到的最多的问题就是跨域问题,这个时间需要我们添加如下代码解决跨域的问题 第一步:在服务类加Attribute [AspNetCompatibilityRequirements(Requireme ...
- NHibernate MappingException. No Persister
在另一个Visual Studio项目(议会mm.k.Infrastructure)我有我的映射文件(一个映射目录),我的hibernate.cfg.xml和一些仓库. 这是我的映射文件: <? ...
- 关于 ActionBar、ToolBar、StatusBar 的开发经验整理
一.ActionBar.ToolBar概述 1.1 ActionBar 1.2 ToolBar 1.3 StatusBar StatusBar 是一个半透明阴影,View 可以伸展到其后面. 1.4 ...
- HDU - 3829 Cat VS Dog (二分图最大独立集)
题意:P个小朋友,每个人有喜欢的动物和讨厌的动物.留下喜欢的动物并且拿掉讨厌的动物,这个小朋友就会开心.问最多有几个小朋友能开心. 分析:对于每个动物来说,可能既有人喜欢又有人讨厌,那么这样的动物实际 ...
- 20162326 齐力锋 2017-2018学期 Bag类的补写博客
要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进行单元测试(JUnit), ...