javascript - 按路线 react 路由器调节

标签 javascript reactjs react-router url-routing react-router-component

我正在使用 React Router 进行服务器端渲染,我想在某些 Route 上运行特殊操作,实际上是在 DefaultRoute 上。我应该如何为此创造条件?我尝试了以下代码:

var React = require("react");
var Router = require("react-router");

var DefaultRoute = Router.DefaultRoute;
var Link = Router.Link;
var Route = Router.Route;
var RouteHandler = Router.RouteHandler;

var routes = [
    React.createElement(Route, {name: "root", path: "/", handler: Root},
        React.createElement(DefaultRoute, {handler: Default})
    )
]

var Default = React.createClass({
    displayName: "Default",
    render: function () {
        return React.createElement("h2", null, "Default");
    }
});

var Root = React.createClass({
    displayName: "App",
    render: function () {
        return (
            React.createElement(RouteHandler, null)
        );
    }
});

app.get('*', function (req, res) {
    Router.run(routes, req.path, function (Root, state) {
        if (React.createElement(Root, null).constructor.displayName === 'Default'){
            //run specific action
        }   
    });
}); 

但是我无法通过这种方式获取组件的名称。有没有其他方法可以识别我在默认路由上??

最佳答案

我还使用 React-Router 进行同构服务器端路由。

Router.run 回调中的 state 属性包含事件路由。你可以这样做:

// states.routes returns the nested routes that your path matches.
// This will return the last route. 
if (state.routes[state.routes.length-1].isDefault) {
  // stuff here
  // you also have access to the onEnter method and the handler (component) in the route too.
}

在此处查看 API 文档:http://rackt.github.io/react-router/#Router.run .祝你好运!

关于javascript - 按路线 react 路由器调节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31600742/

相关文章:

javascript - 如何使用 "[][filter][constructor]..."反混淆 javascript 代码?

JavaScript - eval 中的嵌套函数无法与 try/catch block 一起使用

javascript - React - 使用多个 createContexts 的最佳方式是什么?

reactjs - 是否有一种干净的方法来有条件地加载和渲染同一 React Router 路由的不同组件?

javascript - 如何根据不同的服务器端状态异步加载React组件?

javascript - 文件上传时 IE 中的访问被拒绝错误

javascript - for 循环 jquery javascript

javascript - 未调用 react 函数

javascript - 无法使用在 React 中接收 prop 的 require() 方法

javascript - 插入 React Link 组件并将其作为 prop 传递