Я не могу понять, как передать реквизиты компоненту. Это важно, поскольку я не хочу извлекать данные в методе componentDidMount, так как он будет невидимым для поисковых систем.С getComponent как пройти реквизит?
Мой код выглядит следующим образом
const router =
<Route path="/" component={App}>
<IndexRoute onEnter={redirectToLogin} component={LandingPage} />
<Route path="panel" component={ ControlPanel }>
...
</Route>
<Route
path="/:handle"
onEnter={maybeRedirectToHome}
getComponent={(location, callback)=> {
getSiteHandleByName(location.pathname.slice(1))
.then(function(handle){
if (handle){
callback(null, Portfolio)
} else {
callback(null, NotFound)
}
})
.catch(callback)
}}
getChildRoutes={(location, callback)=> {
callback(null, portfolioRoutes)
}}
/>
</Route>
Я пытаюсь обслуживать портфель React приложения, когда пользователь посещает действительный URL как mysite.com/thishandleisvalid
, но мне нужно также извлечь все содержимое для этого приложения на отметке getComponent
и передать его как собственность. Например. вы обычно можете сделать что-то вроде этого <Portfolio contentItems={fetchedItems} />
.
Делает это возможно?
Это великолепно работает. И спасибо за информацию об использовании крюка onEnter и хранилища флюсов. Это все еще область, которую я нахожу в замешательстве и нуждаюсь в изучении. – Ally
Это хорошо работает для меня, поскольку я пытаюсь передать действия только компоненту на основе маршрута, не загрязняя реквизит в приложении, скажем, если бы я использовал «React.cloneElement (this.props.children, {'действия ': fooActions})' в корне приложения. – mpoplin