import * as React from "react"; import { Component, ValidationMap } 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, RouterContext, LinkProps, RedirectFunction, RouteComponentProps } from "react-router"; const NavLink = (props: LinkProps) => ( ) interface MasterContext { router: InjectedRouter; } class Master extends Component { static contextTypes: 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 } } interface UsersProps extends RouteComponentProps<{}, {}> { } class Users extends React.Component { render() { const { location, params, route, routes, router, routeParams } = this.props; return This is a user list } } ReactDOM.render(( ), document.body) const history = createMemoryHistory("baseurl"); const routes = ( ); match({ routes, location: "baseurl" }, (error, redirectLocation, renderProps) => { renderToString(); }); match({ history, routes }, (error, redirectLocation, renderProps) => { renderToString(); }); ReactDOM.render(( child })} > ), document.body);
{this.props.children}