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);
{this.props.children}