Syncfusion React PDF Viewer seems to have a few issues.
First the control lifecycle issue with componentDidMount()
Creating a reference to the PDF Viewer using "React.createRef()" I would expect like most other components for the reference to be available (not null) by the time componentDidMount() runs but at least from my experience it is only available 1ms after componenyDidMount(). It is still not actually very usable until about 200ms after componentDidMount().
Tested this by immediately trying to set the ajaxRequestSettings directly in componentDidMount() and then following that called pdfViewer.load('document', '').
At 0ms the reference is null, and 1ms its not null but the control is obviously not ready because trying to load the document causes issues with the toolbar when it is injected.
Second the Failed handlers not firing
I have been trying to use "documentLoadFailed()", "ajaxRequestFailed()", and "viewerBase.onControlError()" and at least for the situation that is occurring they do not seem to fire at all.
I have a controller endpoint like in the examples but mine does not AllowAnonymous so I am passing a token in a header (hence why I was setting ajaxRequestSettings above). I am purposely doctoring the token to be incorrect to test those scenarios. My web server gives back a 401 unauthorized for the request just like it should but none of these Failed handlers seem to actually fire.