Comments (3)
Hello!
Do I understand you correctly that you want a way to manage when a hook fails for some reason, like when doing a request to an API, and then use the *
route?
I don't think we can do this given how React Router works. A pattern I have used personally in projects is to render another component when this happens.
Example
@provideHooks({
fetch: ({ params: { id }, setProps }) =>
fetch(`/api/items/${id}`)
.then(response => response.json())
.then(item => setProps({ item }))
.catch(error => setProps({ error }))
})
export default class ItemPage extends Component {
render() {
if (this.props.error) {
return <NotFoundPage />;
}
return <Item item={this.props.item} />;
}
}
If the application is using Redux I often make the application wrapper connect to the store and manage errors in a central place instead for a specific page.
from react-router-redial.
Hi, @dlmr.
I use this way too, but I hope we can find universal solution to make DRY our projects and don't repeat this code
if (this.props.error) {
return <NotFoundPage />;
}
from react-router-redial.
I very open for suggestions on how this API could look/function. 🙂
My personal solution as I mention above is to handle this in the root component with the help of Redux in complicated applications.
from react-router-redial.
Related Issues (9)
- Create example HOT 1
- Rename blocking and defer to something easier to understand HOT 4
- Cannot find module 'redial' HOT 4
- Write tests
- SSR Client still makes initial fetch HOT 2
- Don't re-fetch in layouts what are not changes in route transition HOT 3
- Re-render issue
- Support finer control of which hooks to reload()
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 react-router-redial.