mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2026-02-07 00:24:06 +00:00
asp-prerender-module breaks React's ability to detect Server-Side Rendering #55
Closed
opened 2025-08-09 17:14:50 +00:00 by fergalmoran
·
0 comments
No Branch/Tag Specified
master
rybrande/masterToSrc
pakrym/no-console-fb
release/2.2
pakrym/remove-obsole-api-usage
maestro/release/2.2
maestro/master
release/2.1
release/2.0
rybrande/MergeRelease21IntoDev
rel/2.0.0-extensions
angular-animations-example
fix-angular-material-publishing
rel/2.0.0-templates
httpwithstatetransfer-example
rel/2.0.0-preview2-templates
aspnet-webpack-react-2.x
angular4-prerender-data-example
version-1.x
angular2-lazy-loading-example
581-isomorphic-react-cookies-example
example-using-typescript-paths-for-494
v1.0.x
angular2-materialize-example
redux-typed-1-x
primeng-example
font-awesome-example
karma-testing-example
2.2.0
2.2.0-preview3
2.2.0-preview2
2.2.0-preview1
2.1.1
2.1.0
2.0.4
2.1.0-rc1-final
2.1.0-preview2-final
2.0.3
2.1.0-preview1-final
2.0.2
2.0.1
rel/2.0.0
rel/2.0.0-preview2
Labels
Clear labels
2 - Working
2 - Working
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
angular
angular
angular
angular
angular
bug
bug
bug
bug
bug
bug
bug
bug
bug
core
core
core
core
core
core
core
duplicate
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
external
external
P1
P1
P1
P1
P1
P1
P2
P2
P2
P2
P2
P2
P2
P2
P2
PRI: 1 - Required
react
react
task
task
up-for-grabs
up-for-grabs
up-for-grabs
waiting
waiting
waiting
waiting
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
fergalmoran
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github/JavaScriptServices#55
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @baughmann on 5/26/2018
This is in reference to using OpenLayers to render a Map in .NET Core/React/Redux
asp-prerender-modulebreaks React's ability to detect Server-Side Renderingasp-prerender-module breaks React's canUseDOM, window detection, etc.
While
asp-prerender-moduleis enabled, detecting whether or a component is rendering in the client becomes [seemingly] impossible. I've attempted the following methods:exenvmodule'scanUseDOMfunction: https://github.com/JedWatson/exenvif (typeof window !== 'undefined') // render mapcomponentDidMount()I did not attempt to provide a fake
windowobject.Functional impact
Forces disabling of Server-Side Rendering application-wide
Would highly prefer to just disable rendering of that specific component, rather than disable SSR for teh whole application.
Minimal repro steps
What is the smallest, simplest set of steps to reproduce the issue. If needed, provide a project that demonstrates the issue.
dotnet new reactreduxand thennpm installopenlayersmodule and it'stypes, andexenv:$ npm i --save openlayers$ npm i --save @types/openlayers$ npm i --save exenvtargetfromes5toes6intsconfig.json"strict": falseintsconfig.jsonimport { canUseDOM } from 'exenv';inHome.tsximport * as ol from 'openlayers';inHome.tsx<div>: insiderender():<div id="map" className="map" style={{ height: '500px' }}></div>canUseDOM:$ dotnet runExpected result
See OpenLayers Map render in Home
Actual result
Got
ReferenceError: window is not definedSee below for full error. Would like guidance on how to accomplish my goals stated above. Thank you.
Further technical details
Full error stack