react-web-router-flux
Version:
adapter react native-router-flux for web
40 lines (36 loc) • 1.37 kB
JSX
/**
* 名称:自定义Route组件,针对React-Router的Route扩展
* 日期:2016-11-14
* 作者:Beven
* 描述:无
*/
//>> 引入依赖
import { Route, routerShape } from 'react-router';
import { PropTypes, Component } from "react";
export default class Scene extends Route {
static createRouteFromReactElement(element) {
let props = element.props;
let asyncComponent = props.async;
if (!asyncComponent) {
return super.createRouteFromReactElement(element);
}
let cloneElement = Object.assign({}, element);
let cloneProps = Object.assign({}, props);
if (asyncComponent.prototype instanceof Component) {
cloneProps.component = asyncComponent;
}else{
cloneProps.getComponent = (location, cb) => asyncComponent((m) => cb(null, (m.default||m)));
}
cloneElement.props = cloneProps;
return super.createRouteFromReactElement(cloneElement);
}
/**
* 组件属性类型定义
*/
static propTypes = {
//路由标题,通常可以用作页面的标题
title: PropTypes.string,
//路由需要的权限,通常用标记该路由是否需要登录,或者其他操作之类的 例如:permission:'login'
permission: PropTypes.string
}
}