Comments (6)
Hi, thanks for reporting!
The case you are referring to should never happen. Could you reproduce it?
Server-side, there's no NAVIGATE_START
to be handled since the app has not been rendered yet: as both the promises have been fulfilled (i.e. the navigateAction
did finish as well), the route will be rendered always when NAVIGATE_SUCCESS
has been dispatched:
Promise.all([
context.executeAction(loadIntlMessages, { locale: req.locale }), // lets ignore this
context.executeAction(navigateAction, { url: req.url })
]).then(() => renderApp(req, res, context, next))
.catch(() => renderApp(req, res, context, next));
When executing navigateAction
:
NAVIGATE_START
is dispatched- (optionally, route actions will be called)
NAVIGATE_SUCCESS
is dispatched- Render the app to static markup (in
renderApp
) - If an error occurs while rendering, then pass it to the
next
middleware
The trick here is that renderApp
does catch a rendering error thanks to a try/catch
clause.
The catch
function is there because if actions would return an error, we still want to render the app.
What do you think?
from isomorphic500.
Well... If meta.loadingTitle
translation is missing, then you can reproduce it.
https://github.com/gpbl/isomorphic500/blob/master/src/stores/HtmlHeadStore.js#L70
I guess this one is the only one that should not be missing....
from isomorphic500.
Oh yes I see it now. The case of the HtmlHeadStore is weird. Not sure how to deal with it. Let me think :)
from isomorphic500.
So since the errors fired from route actions should always have a status code, we could write this:
Promise.all([
context.executeAction(loadIntlMessages, { locale: req.locale }),
context.executeAction(navigateAction, { url: req.url })
]).then(() => renderApp(req, res, context, next))
.catch((err) => {
if (!err.statusCode || !err.status) {
next(err);
}
else {
renderApp(req, res, context, next);
}
});
from isomorphic500.
It seems perfectly handled this way :) nice!
from isomorphic500.
🎉
from isomorphic500.
Related Issues (20)
- Can't require images with webpack on the backend HOT 4
- Is it possible to set up an absolute path for import in css and js? HOT 6
- Error Cannot use [chunkhash] on "npm run dev" HOT 1
- Google Analytics route change handling mistake HOT 2
- Service set up with onSave reload HOT 1
- Troubles using <FormattedMessage... > HOT 3
- "Page not found" hardcoded in NotFoundPage HOT 4
- TypeError: Cannot read property 'map' of undefined HOT 5
- Can't run "17 error [email protected] dev: `NODE_ENV=development DEBUG=isomorphic500 nodemon index.js`" HOT 1
- webpack/write-stats.js HOT 3
- Routing help to new page on click HOT 3
- You may remove NoErrorsPlugin with React Hot Loader 1.3.0 HOT 1
- What is benefits of using fluxible? HOT 7
- importing imagesLoaded and other modules that required browser environment HOT 2
- react-intl server rendering and the markup generated on the server was not what the client was expecting
- SEO multi Language perspective HOT 4
- How to load specific locales like es-MX or en-GB HOT 2
- Locale Urls
- Running the development version using Node 4
- Npm install -- Throws be python error HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from isomorphic500.