как установить новое значение в datePicker из ant-design? - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу установить, чтобы весь день был выбран для блокировки сайта во время работы, но когда он нажимается / выбирается день, метод starOf ('day') не меняет время на 00: 00

class SomeClass extends Component {
 state = {
    valueCollections: {},
    showAndHideShowTime: true,
  };
setItem = (props) => {
    const {
      item,
      isCreate,
      type,
    } = props;
    const value = item;
    if (value) {
      const valueCollections = {
        category: value.Category,
        // alternatively, it shall cease to exist if there is a change of opinion
        // validFrom: moment(value.ValidFrom),
        // validTo: value.ValidTo !== undefined && value.ValidTo !== null
        //   ? moment(value.ValidTo)
        //   : null,
        validFrom: type.includes('view') ? moment(value.ValidFrom) : moment(new Date(), dateFormat),
        validTo: type.includes('view') ? moment(value.ValidTo) : moment(new Date(), dateFormat)
      };
      const currentCategory = this.props.modalOptions.valuesForEdit.categories.filter(el =>
        el.Value === valueCollections.category)[0];
      let newValArray =
      this.props.modalOptions.valuesForEdit.descriptions.filter(el =>
        currentCategory.Id === el.CategoryId);
      if (newValArray.length > 1) {
        newValArray = newValArray.filter(el =>
          el.DirectionId === valueCollections.direction);
      } else {
        this.setState({
          valueCollections,
        });
      }
    } else if (isCreate) {
      const valueCollections = {
        category: 1,
        validFrom: moment(new Date(), dateFormat),
        validFromStartDay: moment().startOf('date'),
        validTo: moment(new Date(), dateFormat),
        validToEndDay: moment().startOf('date')
      };
      this.setState({
        valueCollections,
      });
    }
  }
render() {

const { valueCollections } = this.state;


const dataPickerWithChangesFormatStart = (
<DatePicker
      showTime={this.state.showAndHideShowTime}
      format={correctDateFormat}
/>
);

 const startOfDayPick = (
      this.state.showAndHideShowTime === true
        ? valueCollections.validFrom : valueCollections.validFromStartDay
 );

const mappedValidFrom = () => (
      <div>
        {valueCollections.validFrom !== null
          ? (<div>
            {getFieldDecorator('ValidFrom', {
              initialValue: startOfDayPick,
            })(dataPickerWithChangesFormatStart)}
          </div>)
          : (<p>{valueIsEmpty}</p>)
        }
      </div>
    );

const handlerAllDayChecked = () => {
      this.setState({
        showAndHideShowTime: !this.state.showAndHideShowTime,
      });
    };


   }
return (
<div>
     {mappedValidFrom()}
</div>
)
}

Я должен сделать, когда я нажимаю флажок AllDay, тогда время меняется на 00:00, но когда я выбираю некоторые данные после этого, флажок флажка не работает ... Возможно, кто-то должен решить? Справка: -)

enter image description here

1 Ответ

2 голосов
/ 06 ноября 2019

Для формата 00: 00 необходимо установить формат DatePicker как YYYY-MM-DD 00:00. Ваш код должен выглядеть следующим образом.

<DatePicker
      showTime={this.state.showAndHideShowTime}
      format={this.state.showAndHideShowTime ? 'DD/MM/YYYY 00:00' : correctDateFormat}
/>
...