Javascript 反应路由器在服务器上未按预期呈现

Javascript 反应路由器在服务器上未按预期呈现,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我正在尝试使用在php服务器上进行react渲染 单个组件渲染很好,但我在使用渲染子组件时遇到问题 我像躲避瘟疫一样避开了php-V8Js。相反,我以Airbnb为例。基本上,只需在服务器上安装Node,并使用类似于对本地节点服务器执行HTTP请求的操作。通过POST请求将您的PHP数据发送到localhost:3000或其他任何地方。然后,您所要做的就是按照设置服务器端渲染 我谈了一下我是如何处理这个问题的。问题是因为您将'Master'和'about'作为字符串传递,所以React只创建新的

我正在尝试使用在php服务器上进行react渲染

单个组件渲染很好,但我在使用
渲染子组件时遇到问题


我像躲避瘟疫一样避开了php-V8Js。相反,我以Airbnb为例。基本上,只需在服务器上安装Node,并使用类似于对本地节点服务器执行HTTP请求的操作。通过POST请求将您的PHP数据发送到localhost:3000或其他任何地方。然后,您所要做的就是按照设置服务器端渲染


我谈了一下我是如何处理这个问题的。

问题是因为您将
'Master'
'about'
作为字符串传递,所以React只创建新的空元素。您需要将
主控
关于
用作上面导入的变量:


变量路由={
路径:“/”,
组成部分:主,
索引路径:{
组件:关于
}
}


对Brad来说,我认为和Nodejs一起去也是最好的途径,它应该得到更好的支持,并且无论如何都要使用V8。

这是因为您将组件作为字符串传递,例如
“Master”
,而不是导入的组件
Master
?Pete的回答解决了我遇到的问题,但在本地设置php v8js的痛苦之后,我想在进入live时我会接受您的node js建议,谢谢你的提示。
<?php
    $v8js = new V8Js();
    ob_start();
    $v8js->executeString(file_get_contents(PUBLIC_PATH . '/js/bundle.js'), 'v8.js');
    $content = ob_get_clean();
    echo $content; 
import React from 'react'
import { render } from 'react-dom'
import { Router, Route, Link, browserHistory, IndexRoute, match, RouterContext } from 'react-router'

import Master from './views/Master.jsx';
import About from './views/About.jsx';

var routes = {
    path: '/',
    component: 'Master',
    indexRoute: {
        component: 'About'
    }
}

if (typeof document === 'undefined'){
    match({
            routes,
            location: '/'
        },
        function(error, redirectLocation, renderProps) {
            print( React.renderToString(<RouterContext {...renderProps}/>));
    })
}
<Master data-reactid=".1dpk2jzhts0" data-react-checksum="2085756513">
  <About data-reactid=".1dpk2jzhts0.0"></About>
</Master>