react-guard
react-guard copied to clipboard
Provide fallback
What do you think about possible fallback for component?
E.g. We have 10 components and would like to handle their errors, but not in the same way (for error in component 1 show notification, for component 2 - red box etc)
So with current interface I don't see the way to make it possible
reactGuard(React, function (err, componentInfo) {
return <div>Failed to render</div>
})
Possible solutions are:
- pass the class itself as a part of componentInfo (with static method that implements fallback)
- pass the class itself as a third parameter
@kossnocorp what do you think? maybe you have better idea?
You can rely on displayName
and put a condition to the guard function. Is it not enough? It would be helpful if you'll provide an extended example.
@kossnocorp we can't rely on displayName
, because of
- it doesn't work for
createClass
- it doesn't work for functional components
But to my mind we can do something like this
class MyComponent extends React.Component {
static guardFallback() {
return <SomeSpecificJSX />
}
render() {
throw new Error('some error')
}
}
and handle error
reactGuard(React, function (err, componentInfo, ComponentClass) {
if (ComponentClass.guardFallback) {
return ComponentClass.guardFallback()
}
return <div>Failed to render</div>
})
it's just a suggestion, so your opinion is highly appreciated