Пользовательский интерфейс материала Выбор даты Формат даты React - PullRequest
0 голосов
/ 14 мая 2018

Я не вижу, чтобы отформатировать палитру дат в пользовательском интерфейсе материала в приложении React ??

Когда пользователь выбирает дату, я хочу, чтобы она форматировалась в MM / DD / YYYY.Я посмотрел пару ответов, но не ясно, куда должна идти функция изменения формата ???По какой-то причине нет четкой функции / места, где он находится в сети >>

Компонент DatePicker

import React from 'react';
import DatePicker from 'material-ui/DatePicker';

/**
 * `DatePicker` can be implemented as a controlled input,
 * where `value` is handled by state in the parent component.
 */
export default class DateSelect extends React.Component {

  constructor(props) {
    super(props);

    this.state = {
      controlledDate: null,
      openSnackbar: false,
      snackbarText: {
        dateconf: 'Date has been entered!'
      }
    };
  }
  formatDate(date){


  return (date.getMonth() + 1) + "/" + date.getFullYear() + "/" +  date.getDate();
}
  handleChange = (event, date) => {
    console.log('we are in a handle change in date select', event, date)
    this.setState({
      controlledDate: date,
    });
    // this.setState({
        //  openSnackbar: true
        // })
  };

  render() {
    console.log('state and props in date select', this.state, this.props)

    return (
      <DatePicker formatDate={this.formatDate}
        hintText="Date of purchase"
        hintStyle={{color:'whitesmoke'}}
        inputStyle={{ color:'whitesmoke'}}
        value={this.state.controlledDate}
        onChange={this.props.onChange}
      />


    );
  }
}

     ///THE PARENT COMPONENT



   handleDatePicker = (name, date) => {
console.log('handling date change', name, date)
this.setState(prevState => ({
    currentRow: {
        ...prevState.currentRow,
        purchase_date: date
    },
    purchase_date: date,
    actionType: 'date'
}))
this.setState({
    openSnackbar: true
})

   }



                    <DateSelect 
                    hintText="Purchase date"
                    value = {this.state.purchase_date}
                    onChange={this.handleDatePicker}



                    />

1 Ответ

0 голосов
/ 14 мая 2018

Вам необходимо использовать функцию formatDate для форматирования даты и времени в палитре

formatDate -> Эта функция вызывается для форматирования даты, отображаемой в поле ввода, и должна возвращать строку. По умолчанию если не указан языковой стандарт и DateTimeFormat, объекты даты форматируются ISO 8601 ГГГГ-ММ-ДД.

<DatePicker formatDate={this.formatDate}
        hintText="Date of purchase"
        hintStyle={{color:'whitesmoke'}}
        inputStyle={{ color:'whitesmoke'}}
        value={this.state.controlledDate}
        onChange={this.props.onChange}
        formatDate={(date) => moment(new Date()).format('MM-DD-YYYY')}
      />

если вы не передаете какой-либо формат даты, кажется, что минимальная и максимальная дата не работают.

Для более подробной информации Material-UI / DatePicker

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...