import * as React from "react" import * as ReactDOM from "react-dom" import {renderToString} from "react-dom/server"; import { applyRouterMiddleware, browserHistory, hashHistory, match, createMemoryHistory, withRouter, routerShape, Router, Route, IndexRoute, InjectedRouter, Link, RouterOnContext, RouterContext, LinkProps} from "react-router"; const NavLink = (props: LinkProps) => ( ) interface MasterContext { router: 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: 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(); }); ReactDOM.render(( child })} > ), document.body);