Изменить локаль в реагировать на дату выбора - PullRequest
0 голосов
/ 28 января 2019

Я использую act-datepicker пакет NPM,
Я пытался следовать документации, но мне не удалось импортировать

registerLocale 

и

setDefaultLocale

из react-datepicker

Вы видите, где я совершаю ошибку?

 import DatePicker from 'react-datepicker';



...
    <DatePicker
            { ...this.props }
            dateFormat={ this.dateFormat }
            ref={ (node) => { this.ref = node; } }
            onClickOutside={ this.clickOutside }
          />
...

это код, в который я хочу импортировать локаль.

Ответы [ 3 ]

0 голосов
/ 28 января 2019
import React, { Component } from 'react';
import DatePicker, { registerLocale } from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import ja from "date-fns/locale/ja";

registerLocale("ja", ja);

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      date: new Date()
    }
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(date) {
    this.setState({
      date
    });
  }

  render() {
    return (
      <div className="App">
        <body>
          <DatePicker
            dateFormat="yyyy/MM/dd"
            selected={this.state.date}
            onChange={this.handleChange}
            locale='ja'
          />
        </body>
      </div>
    );
  }
}

export default App;

Я мог бы получить результат, который вы хотели.И я попытался сделать это с библиотекой moment, но это не сработало в моем коде.извините

0 голосов
/ 10 июля 2019

Вам даже не нужно использовать registerLocale , просто используйте имя переменной импорта ja без кавычек:

<DatePicker
  dateFormat="yyyy/MM/dd"
  selected={this.state.date}
  onChange={this.handleChange}
  locale=ja
/>

Вы также можете установить язык по умолчаниюдля всех полей выбора даты с setDefaultLocale :

constructor (props) {
    registerLocale("ja", ja);
    setDefaultLocale("ja");
}

Надеюсь, это поможет.

0 голосов
/ 28 января 2019

Прежде всего убедитесь, что вы используете последнюю версию плагина ( 2.0.0 ).Затем вам также нужно установить модуль date-fns, но на данный момент react-datepicker работает с версией 2.0.0-alpha.23.

Затем вам нужно импортировать и зарегистрировать нужный языки, наконец, добавьте свойство locale к DatePicker

, так ( после установки правильных версий )

import DatePicker, { registerLocale } from "react-datepicker";
import el from "date-fns/locale/el"; // the locale you want
registerLocale("el", el); // register it with the name you want

и используйте его

<DatePicker 
    locale="el"
    ...
/>

Рабочая демонстрация на https://codesandbox.io/s/7j8z7kvy06

...