[解決済み] material-ui-pickers KeyboardDatePicker をモーメントで使用するには?
2022-02-07 13:19:32
質問
を使っています。
KeyBoardDatePicker
から
material-ui-pickers
と
moment utils
はDatePickerの場合です。
import React, { Fragment, useState } from "react";
import {
MuiPickersUtilsProvider,
KeyboardDatePicker
} from "@material-ui/pickers";
import MomentUtils from "@date-io/moment";
import moment from "moment";
function KeyboardDatePickerExample(props) {
const [selectedDate, handleDateChange] = useState(new Date());
return (
<Fragment>
<MuiPickersUtilsProvider libInstance={moment} utils={MomentUtils}>
<KeyboardDatePicker
autoOk={true}
showTodayButton={true}
value={selectedDate}
format="D MMM, YYYY"
onChange={handleDateChange}
minDate={moment().subtract(6, "months")}
maxDate={moment()}
/>
</MuiPickersUtilsProvider>
</Fragment>
);
}
export default KeyboardDatePickerExample;
でも、うまく動作しないんです。
まず、日付の書式が正しく表示されていません。
編集しようとすると、ランダムなテキストが表示され、エラーになります。
invalid date format
.
以下は サンドボックス で、この問題を再現しています。
何が間違っているのでしょうか?
EDIT :
Nico さんの回答を見て、バージョンアップしてみました。
date-io/moment
から
1.3.13
これで、日付の書式が正しく表示されるようになりました
しかし、編集の問題はまだ存在します。どうすれば直るのでしょうか?
解決方法を教えてください。
これは、私の同僚が提供した修正方法です。彼は
inputValue
と
value
のプロップスです。
KeyboardDatePicker
.
value
は日付オブジェクトを受け取り
inputValue
は、フォーマットされた日付文字列を取ります。また
rifmFormatter
プロパティを以下のように変更することで、編集の問題を解決しました。また
サンドボックス
import React, { Fragment, useState } from "react";
import {
MuiPickersUtilsProvider,
KeyboardDatePicker
} from "@material-ui/pickers";
import MomentUtils from "@date-io/moment";
import moment from "moment";
function KeyboardDatePickerExample(props) {
const [selectedDate, setDate] = useState(moment());
const [inputValue, setInputValue] = useState(moment().format("YYYY-MM-DD"));
const onDateChange = (date, value) => {
setDate(date);
setInputValue(value);
};
const dateFormatter = str => {
return str;
};
return (
<Fragment>
<MuiPickersUtilsProvider libInstance={moment} utils={MomentUtils}>
<KeyboardDatePicker
autoOk={true}
showTodayButton={true}
value={selectedDate}
format="YYYY-MM-DD"
inputValue={inputValue}
onChange={onDateChange}
rifmFormatter={dateFormatter}
/>
</MuiPickersUtilsProvider>
</Fragment>
);
}
export default KeyboardDatePickerExample;
関連
-
[解決済み] エラー: 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】<Router>の外側で<Link>を使用してはならない
-
[解決済み】React 17で動作するEnzymeアダプターはどれですか?
-
[解決済み】ngrokがReact devサーバーに接続しようとすると、無効なホストヘッダが表示される。
-
[解決済み] テスト
-
[解決済み】プリセットファイルはオブジェクトのエクスポートができない
-
[解決済み] Next.jsでWebSocketを利用する
-
[解決済み] componentWillReceiveProps は名称が変更されました。
-
[解決済み] eslint: no-case-declaration - case ブロックで予期しない字句の宣言があった。
-
[解決済み] AxiosにCORSの問題が発生
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンポーネントの定義に表示名がない react/display-name
-
[解決済み] material-ui-pickers KeyboardDatePicker をモーメントで使用するには?
-
[解決済み] ReactJS: Warning: setState(...): 既存の状態遷移の間に更新することはできません
-
[解決済み] React + TypeScript のエラーです。この呼び出しにマッチするオーバーロードがありません
-
[解決済み] TypeError: reactjs の未定義のプロパティ 'status' を読み取ることができません。
-
[解決済み] react nativeで関数だらけのヘルパーファイルを作成する方法は?
-
[解決済み] Webpack のコンパイルに失敗した
-
[解決済み] eslint: no-case-declaration - case ブロックで予期しない字句の宣言があった。
-
[解決済み] react-navigation v5を使ったreact-nativeアプリのAppNavigatorの構文を更新する。
-
[解決済み] 拡張子.tsと.tsxの違いは何ですか?どちらもreactのタイプスクリプトファイルの拡張子として使用されます。では、どこで使うべきなのでしょうか?