-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The selected month resets when the component is rendered #162
Comments
I think the problem stems from the "makeDateValues" function. When this function is called, it resets the "displayDate" to the "selectedDate". In particular, when the componentWillReceiveProps method is called on the DatePicker, it attempts to check for value changes prior to calling "makeDateValues". However, in my case, the values weren't matching because of the time on the date value. The component sets the time on the internal dates to "12:00:00.000Z". I was able to workaround the issue by manipulating the value string in the same was as the internal component prior to setting the property. For example:
Perhaps a better fix would be for the "componentWillReceiveProps" function to compare only the date parts of the current and new value. |
Table of Contents
Expected Behavior
If the date picker is open, the month should not change to the selected month when the component rerenders.
Current Behavior
The month resets when the component is rerendered while the date picker is open.
Possible Solution
Steps to Reproduce (for bugs)
Context
We have data changes that cause a rerender at least once per second. This bug effectively means that you cannot select a date in another month.
As a temporary fix, I created a wrapper which uses
componentShouldUpdate
to only update the component whenvalue
changes. This is not ideal because it prevents the month from resetting to the selected value when the date picker is closed and opened again. It also prevents updates to other props, which is not a problem for my use case.Your Environment
The text was updated successfully, but these errors were encountered: