Before hooks for react components using react-router
.
import { useReactRouteReady } from 'react-route-ready';
// ...
render(<Provider store={store}>
<Router render={(props) => (applyRouterMiddleware(useReactRouteReady))}>
{routes}
</Router>
</Provider>, document.getElementById('root'))
import LoadingSpinner from './components/LoadingSpinner';
@beforeRouteReadyRender(LoadingSpinner)
@beforeRouteReadyPromise(({params, dispatch, getState}) => {
return Promise.all([
dispatch(getAccountSettings()),
dispatch(getSomePageData()),
]);
})
class SomePage extends Component {
// ...
}
Nested route components will load sequentially and display the component passed into @beforeReadyRender
until ready.