回答
您可以從location
道具路線組件獲得當前路徑。從您的路徑組件的this.props.location
訪問的位置。如果 您希望在樹中更深入,則可以使用您的應用使用的任何 約定來使道具從高到低。一個 選擇是提供它上下文自己:
// V2.0.x中常量RouteComponent = React.createClass({
childContextTypes:{ 位置:React.PropTypes.object},getChildContext (){ 回報{位置:this.props.location}}})
看一看here。
爲了獲得當前的路徑,你可以只使用location.pathname
。訪問路徑
你能提供一些關於你想達到什麼的細節?另外,你是否需要在路由組件之外訪問這個?使用'location.pathname'是訪問位置路徑的官方方式,但通常有一些不受支持的非官方方式,取決於你想要做什麼:-) –
我需要訪問路由的當前路徑。像localhost:9000 /#/ home。 我想'家'來比較它。反應的問題是,當我使用location.hash時,我得到了反應鍵,而location.pathname給我/所有的時間 –
這很奇怪。沒有看到代碼就很難找出問題。我在codepen上創建了[一個小例子](http://codepen.io/alexchiri/pen/bpVXbd)。 'MainLayout'映射到'/'並在其內部顯示子節點'Home'和'UserList'。 'UserList'映射到'/ users'並在裏面顯示子'User'。 'User'映射到'/ users /:id',並沒有任何子節點。在這些組件的渲染方法中,我會顯示來自其道具的'location.pathname'。正如你可以注意到的那樣,當導航到一個孩子時,甚至它的宿主父母的'location.pathname'也被改變了。 –
的一種方式是經由this.props.location
從反應組分。
import React from 'react'
import { render } from 'react-dom'
import { browserHistory, Router, Route, Link } from 'react-router'
class Child extends React.Component {
render() {
let location = this.props.location
return (
<div>
<h1>Child Component</h1>
<p>{location.pathname}</p>
</div>
)
}
}
class App extends React.Component {
render() {
return (
<div>
{this.props.children}
</div>
)
}
}
render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="child" component={Child} />
</Route>
</Router>
), document.getElementById('example'))
,如果你想聽聽通過歷史在當前位置變化的另一種方式 -
import { createHistory } from 'history'
let history = createHistory()
// Listen for changes to the current location. The
// listener is called once immediately.
let unlisten = history.listen(function (location) {
console.log(location.pathname)
})
// When you're finished, stop the listener.
unlisten()
- 1. 如何從反應路由器獲取當前位置?
- 2. 獲取與反應路由器之前的散列之前的查詢參數?
- 3. React路由器獲取主路由器組件上的當前位置
- 4. 如何訪問iframe的當前位置?
- 5. 如何從反應路由器的外部獲取當前路由?
- 6. 反應路由器:位置「/」沒有匹配的路由
- 7. 反應路由器問題
- 8. 反應路由器問題
- 9. 反應路由器+電子位置「/」不符合任何路線
- 10. 如何訪問React路由器的位置道具?
- 11. 如何從Durandal路由器訪問前一條路由
- 12. 有條件地設置活動類反應路由器當前的路線
- 13. 訪問當前路由參數laravel4
- 14. 更新路由器的歷史位置(使用反應路由器-DOM)
- 15. 反應路由器V4路徑問題
- 16. Angular 2如何訪問當前路徑路徑
- 17. 如何重新加載當前的鐵路:路由器路由?
- 18. 如何強制路由器更新Angular 2中的當前路由?
- 19. IndexRoute相當於反應路由器V4
- 20. 是否有可能訪問當前的路由組件與陣營路由器
- 21. 如何在反應中訪問路由參數的值?
- 22. 角2路由器直接訪問URL
- 23. 在選擇器中訪問反應路由器狀態
- 24. 獲取訪問者的當前位置
- 25. 訪問redstone攔截器中的當前路由元數據
- 26. 訪問控制器或組件的當前路由名稱
- 27. 如何使用角度2路由器重新加載當前路由
- 28. Angular 2,如何顯示當前路由名稱? (路由器3.0.0-beta.1)
- 29. 如何使用Passport.js返回當前散列位置?
- 30. 反應路由器的browserHistory沒有位置和其他屬性
你想讀的URL哈希?那麼'window.location.hash'呢? – Andreyco
當我使用location.hash我得到反應的鑰匙隨着散列 –