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

lclemence picture lclemence  路  3Comments

arturictus picture arturictus  路  3Comments

hoodsy picture hoodsy  路  3Comments

evolve2k picture evolve2k  路  3Comments

ericreis picture ericreis  路  3Comments