componentWillReceiveProps(properties) {
    const newState = {};

    if (has(properties, 'valueLink')) {
      newState.selectedDate = properties.valueLink.value;
    } else if (has(properties, 'value')) {
      newState.selectedDate = properties.value;
    }

    this.setState(newState);

    this.localeData = getLocaleData(properties.locale);
    this.wrapperProps = sanitizeWrapperProps(properties);
    this.dayProps = sanitizeDayProps(properties.dayProps);
    this.disabledDayProps = sanitizeDisabledDayProps(properties.dayProps);
    this.emptyDayProps = sanitizeEmptyDayProps(properties.dayProps);
    this.navBarProps = sanitizeNavBarProps(properties.navBarProps);
    this.prevMonthNavProps = sanitizePrevMonthNavProps(properties.prevMonthNavProps);
    this.prevMonthNavIconProps = sanitizePrevMonthNavIconProps(properties.prevMonthNavIconProps);
    this.nextMonthNavProps = sanitizeNextMonthNavProps(properties.nextMonthNavProps);
    this.nextMonthNavIconProps = sanitizeNextMonthNavIconProps(properties.nextMonthNavIconProps);
    this.monthLabelProps = sanitizeMonthLabelProps(properties.monthLabelProps);
    this.dayLabelProps = sanitizeDayLabelProps(properties.dayLabelProps);
    this.weekHeaderProps = sanitizeWeekHeaderProps(properties.weekHeaderProps);
    this.weekGridProps = sanitizeWeekGridProps(properties.weekGridProps);

    this.preventFocusStyleForTouchAndClick = has(properties, 'preventFocusStyleForTouchAndClick') ? properties.preventFocusStyleForTouchAndClick : config.preventFocusStyleForTouchAndClick;

    removeAllStyles(Object.keys(this.pseudoStyleIds));
    updatePseudoClassStyle(this.pseudoStyleIds, properties, this.preventFocusStyleForTouchAndClick);
  }
Function will update component state and styles as new props are received.