Nie mogę wymyślić, jak przekazać rekwizyty do komponentu. Jest to ważne, ponieważ nie chcę pobierać danych w metodzie componentDidMount, ponieważ będzie to niewidoczne dla wyszukiwarek.Z getComponent jak przekazywać rekwizyty?
Mój kod wygląda następująco
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>
Próbuję służyć do portfela React aplikacji, gdy użytkownik odwiedza prawidłowy adres URL jak mysite.com/thishandleisvalid
ale Muszę również pobrać całą zawartość dla tej aplikacji w punkcie getComponent
i przekazuj go jako właściwość. Na przykład. możesz normalnie zrobić coś takiego: <Portfolio contentItems={fetchedItems} />
.
Czy to jest możliwe?
To działa wielkie dzięki. I dziękuję za informacje na temat używania haka onEnter i magazynu flux. To wciąż obszar, który uznaję za mylący i muszę się czegoś dowiedzieć. – Ally
Działa to dobrze dla mnie, ponieważ próbuję tylko przekazywać działania do komponentu na podstawie trasy bez zanieczyszczania rekwizytów w całej aplikacji, na przykład, jeśli użyłem "React.cloneElement (this.props.children, {'actions ": fooActions})" w katalogu głównym aplikacji. – mpoplin