How to use components that use `window` reference in React with server-side rendering?

samuelg0rd0n

An example of such component is Pikaday (react-pikaday) that contains in its code this line

hasEventListeners = !!window.addEventListener

but window is not defined on server so when I run the code it throws an error ReferenceError: window is not defined.

I tried to solve this issue by conditionally import Pikady component, something along these lines:

let Pikaday;
if (typeof window !== 'undefined' && window.document && window.document.createElement) {
    import('./Pikaday').then(P => {
        Pikaday = P.default;
    });
}

In such a case it doesn't throw an error because the component is not loaded but I presumed that the initial HTML sent from server would not contain this component and then it would somehow "switch" to JS code on client side and the component would load. But this doesn't happen. I'm new to server-side rendering in general so I'm getting a bit lost.

How can I solve this? I have the same problem with Leaflet library that also contains window in its code.

samuelg0rd0n

I eventually used this fork of Pikaday that introduces several small changes to check for window availability:

https://github.com/everdimension/Pikaday

I don't think there was any other way than edit the plugin itself.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Why use React server side rendering

From Dev

How to use Angular 2 server side rendering

From Dev

How to use jinja2 server side rendering alongside react without violating inline-script CSP

From Dev

How to add additional express routes in react server side rendering to use as backend

From Dev

React server rendering - how to use JSX?

From Dev

React - server side component rendering

From Dev

React - server side component rendering

From Dev

Rendering components on the server side with code splitting in webpack

From Dev

react server side rendering with client side routing

From Dev

react server side rendering with client side routing

From Dev

React- How to preserve javascript when rendering server side

From Dev

React / Express - How will server side rendering work with my dynamic pages

From Dev

React Server Side Rendering App - how to update meta data

From Dev

React.js how to avoid server rendering of some components?

From Dev

How to use JSON Sanitizer at Server Side?

From Dev

How to use DataTables server side column ordering?

From Dev

In R shiny, how to use on the UI side a value computed on the SERVER side?

From Dev

In R shiny, how to use on the UI side a value computed on the SERVER side?

From Dev

How to use React.js to render server-side template on Sails.js?

From Dev

React/Redux server side rendering initial state

From Dev

React Server Side rendering is rerendered in frontend?

From Dev

React Router / Hapi Server Side Rendering Error

From Dev

React server side rendering ReferenceError: document is not defined

From Dev

React server side rendering checksum warning

From Dev

React server side rendering wrong page

From Dev

React massive content and duplication with server side rendering

From Dev

React server side rendering renders incorrect content

From Dev

Import components for server-side rendering in ES6

From Dev

When to use :(colon) in rendering in jsf components

Related Related

  1. 1

    Why use React server side rendering

  2. 2

    How to use Angular 2 server side rendering

  3. 3

    How to use jinja2 server side rendering alongside react without violating inline-script CSP

  4. 4

    How to add additional express routes in react server side rendering to use as backend

  5. 5

    React server rendering - how to use JSX?

  6. 6

    React - server side component rendering

  7. 7

    React - server side component rendering

  8. 8

    Rendering components on the server side with code splitting in webpack

  9. 9

    react server side rendering with client side routing

  10. 10

    react server side rendering with client side routing

  11. 11

    React- How to preserve javascript when rendering server side

  12. 12

    React / Express - How will server side rendering work with my dynamic pages

  13. 13

    React Server Side Rendering App - how to update meta data

  14. 14

    React.js how to avoid server rendering of some components?

  15. 15

    How to use JSON Sanitizer at Server Side?

  16. 16

    How to use DataTables server side column ordering?

  17. 17

    In R shiny, how to use on the UI side a value computed on the SERVER side?

  18. 18

    In R shiny, how to use on the UI side a value computed on the SERVER side?

  19. 19

    How to use React.js to render server-side template on Sails.js?

  20. 20

    React/Redux server side rendering initial state

  21. 21

    React Server Side rendering is rerendered in frontend?

  22. 22

    React Router / Hapi Server Side Rendering Error

  23. 23

    React server side rendering ReferenceError: document is not defined

  24. 24

    React server side rendering checksum warning

  25. 25

    React server side rendering wrong page

  26. 26

    React massive content and duplication with server side rendering

  27. 27

    React server side rendering renders incorrect content

  28. 28

    Import components for server-side rendering in ES6

  29. 29

    When to use :(colon) in rendering in jsf components

HotTag

Archive