React-datepicker: Cannot render component on the server (v2.0.0)

Created on 28 Nov 2018  路  4Comments  路  Source: Hacker0x01/react-datepicker

Expected behavior

Component should render on the server.

Actual behavior

When trying to run server side rendering an error is thrown:

ReferenceError: window is not defined
    at getLocaleObject (/Users/martin/projects/engined/e-care/node_modules/react-datepicker/lib/index.js:6099:3)
    at formatDate (/Users/martin/projects/engined/e-care/node_modules/react-datepicker/lib/index.js:5979:19)
    at safeDateFormat (/Users/martin/projects/engined/e-care/node_modules/react-datepicker/lib/index.js:5996:18)
    at DatePicker._this.renderDateInput (/Users/martin/projects/engined/e-care/node_modules/react-datepicker/lib/index.js:8806:154)
    at DatePicker.render (/Users/martin/projects/engined/e-care/node_modules/react-datepicker/lib/index.js:8881:14)
    at processChild (/Users/martin/projects/engined/e-care/node_modules/react-dom/cjs/react-dom-server.node.development.js:2861:18)
    at resolve (/Users/martin/projects/engined/e-care/node_modules/react-dom/cjs/react-dom-server.node.development.js:2714:5)
    at ReactDOMServerRenderer.render (/Users/martin/projects/engined/e-care/node_modules/react-dom/cjs/react-dom-server.node.development.js:3098:22)
    at ReactDOMServerRenderer.read (/Users/martin/projects/engined/e-care/node_modules/react-dom/cjs/react-dom-server.node.development.js:3057:29)
    at renderToString (/Users/martin/projects/engined/e-care/node_modules/react-dom/cjs/react-dom-server.node.development.js:3524:27)
...

Steps to reproduce

Try to render <DatePicker> on the server.

Problem is here: https://github.com/Hacker0x01/react-datepicker/blob/master/src/date_utils.js#L238-L255

I think that it can be easily fixed by local module variable for storing locale data.

wontfix

Most helpful comment

I also found about this issue just when upgraded to 2.0.
Was happy to get rid of moment.js, but received this in exchange...

I could perhaps try to send PR for changing those window variables in date_utils.js to local variables, if that would be considered valid fix?

All 4 comments

I also found about this issue just when upgraded to 2.0.
Was happy to get rid of moment.js, but received this in exchange...

I could perhaps try to send PR for changing those window variables in date_utils.js to local variables, if that would be considered valid fix?

+1

So, I'm guessing the suggested work-around is to downgrade back to 1.x?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

JustFly1984 picture JustFly1984  路  23Comments

johhansantana picture johhansantana  路  19Comments

YOO629 picture YOO629  路  48Comments

mir3z picture mir3z  路  24Comments

tadjohnston picture tadjohnston  路  42Comments