2016-03-25 54 views
2

使用renderToString呈现我的组件服务器端。所有这一切都工作得很好。如果我手动输入一个像/ register这样的URL,我的组件就完美呈现了。链接到更改状态,但不更改URL

问题是,在我的应用中使用<Link>时,状态正在改变,但我的URL根本没有更新。

route.js:

import React from 'react'; 
import { render } from 'react-dom'; 
import { Provider } from 'react-redux'; 
import { browserHistory, Router, match } from 'react-router'; 
import routes from './routes'; 
import store from './stores'; 

// Server rendering works identically when using async routes. 
// However, the client-side rendering needs to be a little different 
// to make sure all of the async behavior has been resolved before the 
// initial render,to avoid a mismatch between the server rendered and client rendered markup. 

match({ location:browserHistory, routes }, (error, redirectLocation, renderProps) => { 
    render((
    <Provider store={store}> 
     <Router {...renderProps} /> 
    </Provider> 
), document.getElementById('root')); 
}); 

我有一种感觉这可能是由于browserHistory,有我丢失的东西?

回答

2

我给了match()错误的参数。相反的:

match({ location:browserHistory, routes } 

它应该是:

match({ history:browserHistory, routes }