/// /// /// /// import * as React from "react" import * as ReactDOM from "react-dom" import {renderToString} from "react-dom/server"; import { browserHistory, hashHistory, createMemoryHistory, match, withRouter, Router, RouterContext, Route, IndexRoute, Link} from "react-router" import { routerShape, locationShape } from "react-router/lib/PropTypes" interface MasterContext { router: ReactRouter.RouterOnContext; } class Master extends React.Component, {}> { static contextTypes: React.ValidationMap = { router: routerShape }; context: MasterContext; navigate() { var router = this.context.router; router.push("/users"); router.push({ pathname: "/users/12", query: { modal: true }, state: { fromDashboard: true } }); } render() { return Master Dashboard Users {this.props.children} } } interface DashboardProps { router: ReactRouter.InjectedRouter }; class Dashboard extends React.Component { navigate() { var router = this.props.router; router.push("/users"); router.push({ pathname: "/users/12", query: { modal: true }, state: { fromDashboard: true } }); } render() { return This is a dashboard } } const DashboardWithRouter = withRouter(Dashboard) class NotFound extends React.Component<{}, {}> { render() { return This path does not exists } } class Users extends React.Component<{}, {}> { render() { return This is a user list } } ReactDOM.render(( ), document.body) const history = createMemoryHistory("baseurl"); const routes = ( ); match({history, routes, location: "baseurl"}, (error, redirectLocation, renderProps) => { renderToString(); });
{this.props.children}