If you are using react-router you can use Miss components to handle routes that have no handlers defined. This is the equivalent of 404 error pages in traditional web applications.
A 500 error page will be encountered only if your backend API returns an error. If the user can continue do other things while some service call has failed you can just show an error notification and/or disable certain aspects of your site. For example if a stock ticker fails to update it should be greyed out to indicate that the data is stale.
However, if the error is severe and there is nothing to be done by the user anymore - and no way to gracefully recover from the flow, user should be redirected to a static 500 error page. This page can also be reused by your reverse proxy (eg nginx) when the application server itself is down.