UNPKG

react-web-router-flux

Version:

adapter react native-router-flux for web

40 lines (36 loc) 1.37 kB
/** * 名称:自定义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 } }