我正在使用react-router-dom: v4.1.1
,这是我的路由器代码:
var ReactRouter = require('react-router-dom');
var Router = ReactRouter.BrowserRouter;
var Route = ReactRouter.Route;
var Switch = ReactRouter.Switch;
var browserHistory = ReactRouter.BrowserHistory;
<Router history={browserHistory}>
<div className='container'>
<Switch>
<Route exact path='/' render={(props) => <Home
{...props} // for router history and all that.
rebase={rebase}
items={this.state.items}
user={this.state.currentUser}
userData={this.state.currentUserData}/>} />
<Route path='/browse' render={() => <Browse items={_.values(this.state.items)}/>} />
<Route render={function () {
return <p>Not Found</p>
}} />
</Switch>
</div>
</Router>
在Home
组件中,我有一个按钮,当点击该按钮时,会在历史记录中添加一个新网址:this.props.history.push('/?p=' + hash)
其中hash
就像f9ojy
。这个“有用”的意思是窗口中的URL更新为新的哈希值,但是当我点击“后退”或“前进”时,显示的页面没有变化。
答案 0 :(得分:0)
在Reactiflux不和谐频道找到答案;在componentDidUpdate
我可以查看之前的this.props.location.search
并将其与当前的 let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: restaurant.latitude, longitude: restaurant.longitude)
marker.title = restaurant.name
marker.icon = xyz
进行比较。如果它不相同,我有一个根据当前参数重置UI的功能。