TLDR訪問狀態對象: 我做一個簡單的2頁的應用程序,訪問來自網頁的狀態對象,不知道如何構建我的反應路由器(和它的爲時已晚在這個階段轉移到redux:P)。陣營路由器 - 動態路由 - 通過路由器
Codepen is here,但注意路由不codepen工作。
有一個列表頁面,並通過網頁上的點擊有更多細節。
詳細信息頁面(HolidayPage)連接到使用推browserHistory使用對象屬性從狀態對象 -
<Route path="/:HolidayId" component={HolidayPage}/>
我很困惑,如何從這個HolidayPage
組件訪問狀態對象,因爲它不是一個孩子根應用程序(因此不與狀態對象相鄰),我可以通過此路由狀態對象作爲屬性?
在HolidayPage
組件中,我想要訪問狀態對象以輸出特定頁面的假期詳細信息,例如,路徑/holiday_2
會顯示來自 - state.holidays.holiday_2.details
的對象數據。
或者,如果我使用嵌套根並使用{this.props.children}(as seen here)將我的組件插入到根組件中,那麼我會混淆如何將狀態對象屬性傳遞給插入的組件。
我的應用程序有
holidays: {
holiday_1 : {
name : 'France',
details : 'Lorem ipsum dolor sit amet',
},
holiday_2 : {
name : 'Italy',
details : 'Lorem ipsum dolor sit amet',
},
holiday_3 : {
name : 'Spain',
details : 'Lorem ipsum dolor sit amet',
},
}
路由設置的,像這樣一個狀態對象 -
ReactDOM.render((
<Router history={browserHistory} >
<Route path="/" component={MainLayout} />
<Route path="/:HolidayId" component={HolidayPage}/>
</Router>
), document.getElementById('main'))
並引導到我使用這個代碼的動態頁面 -
gotoHoliday : function (e) {
e.preventDefault();
var HolidayId = this.props.index;
browserHistory.push(HolidayId);
},
在節假日頁面上,我可以使用{this.props.params.HolidayId}
來顯示節假日ID,但我不確定如何顯示節日的詳細信息是HolidayId
對象。
如果有人能幫助我,我會很感激! :)
如果有人回答了您的問題,請單擊答案旁邊的複選標記以標記爲正確。如果不是,請更新問題以更具體。 –