Как получить значение в формате DatePicker реагировать гггг-мм-дд - PullRequest
0 голосов
/ 16 января 2020

У меня есть компонент datepicker реагирует js, который имеет форму yyyy-MM-dd, но почему он недопустим, если я использую только данные

const date = moment().format("yyyy-MM-dd");

class Register extends Component {

  constructor(props) {
    super(props)
    this.state = {
      BIRTH_OF_DATE:date
    }
  }

  render(){
   return(
     <DatePicker
      showPopperArrow={false}
      selected={this.state.BIRTH_OF_DATE}
      onChange={(newDate) => this.setState({BIRTH_OF_DATE:newDate})}
    />
   )
  }
}

Ответы [ 3 ]

0 голосов
/ 16 января 2020

Я думаю, вам нужно немного больше прояснить проблему, с которой вы столкнулись. Предполагая, что вы используете пакет react-datepicker, я думаю, что нашел, что пошло не так.

Вот список реквизитов рэйбера-datepicker. Здесь говорится, что опора selected должна быть объектом Date. Вы используете объект moment, и это должно быть проблемой. Мой совет: сначала используйте объект Date, а затем измените вывод на тот формат, который вы хотите. Надеюсь, что я говорю о проблеме, с которой вы сталкиваетесь, и мой ответ помогает!

Кроме того, если я правильно понимаю, вы должны получить вывод в указанном формате. Для этого вы можете использовать опору dateFormat и указать правильный формат даты, который вы хотите использовать. Проверьте, как указан правильный формат дат (документация moment.js является хорошим местом для изучения), например: mm и MM различны.

0 голосов
/ 16 января 2020

Вы можете использовать опору dateFormat, но в этом случае это не будет работать, потому что формат неправильный:

moment().format('yyyy-MM-dd')
"yyyy-01-Th"

Это будет правильная форма

 moment().format('YYYY-MM-dd')
    "2020-01-Th"

А затем попробуйте:

 <DatePicker
  showPopperArrow={false}
  selected={this.state.BIRTH_OF_DATE}
  onChange={(newDate) => this.setState({BIRTH_OF_DATE:newDate})}
  dateFromat='YYYY-MM-dd' />

РЕДАКТИРОВАТЬ:

class Register extends Component {

  constructor(props) {
    super(props)
    this.state = {
      BIRTH_OF_DATE: moment().format("yyyy-MM-dd")
    }
  }

  render(){
   return(
     <DatePicker
      showPopperArrow={false}
      selected={this.state.BIRTH_OF_DATE}
      onChange={(newDate) => this.setState({BIRTH_OF_DATE: moment(newDate).format("yyyy-MM-dd")})}
    />
   )
  }
}
0 голосов
/ 16 января 2020

Вы должны установить onchange={this.handleOnchange} и обрабатывать в функции handleOnchange, Вы не можете setState включить render()

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