[解決済み] TextField type="number" に最小値/最大値を設定するには?
質問
Material-UI v1.0.0-beta23を使用しています。
redux-form
と
redux-form-material-ui
. 私が持っているのは
Field
があり、このタグに最小値と最大値を設定したいのです。私は、両方の
inputProps
とmin/maxの両方を試しましたが、どちらも私が望むことを行っていないようです。ソースコードを見てみましたが、これを行うための明白な方法が見当たりません。それは可能ですか、そしてもしそうなら、どのように?
私が試したものを示す私のJSXはここにあります。
<Field
name="maxNodeSelectedCount"
component={TextField}
label="Max Node Selected Count"
type="number"
inputProps={{ min: 0, max: 10 }}
min={11}
max={20}
format={formatOption}
normalize={normalizeOption}
{...propertyFieldDefaults}
/>
DOMはこんな感じです。
<input type="number" class="MuiInput-input-346 MuiInput-inputSingleline-349 MuiInput-inputDense-347" value="-3" name="options.maxNodeSelectedCount">
どのように解決するのですか?
redux-formは フィールド はコンポーネントにプロップを渡します。
他のすべてのpropは、コンポーネントpropによって生成された要素に渡されます。
は
テキストフィールド
という名前のプロパティがあります。
InputProps
という名前のプロパティがあり、これを使用してプロップを
入力
コンポーネントに渡すことができます。 これは
redux-form-material-ui
. そのTextFieldは、単にmaterial-uiコンポーネントのラッパーです。
マテリアル-uiの
Input
コンポーネントには
inputProps
という名前のプロパティがあり、これを使用してプロップを
input
要素に渡すことができます。
OK、それで私はどうすればいいのでしょうか?
プロップスをずっと渡す必要があります。
Field
から
TextField
へ、へ
Input
を、その
input
要素に変換します。
ということで、もし
InputProps
を設定すると、それが TextField に渡され、TextField はそれを
Input
コンポーネントに渡されます。 渡されたオブジェクトに内側の
inputProps
(意図的な小文字の 'i') が含まれている場合、Input コンポーネントはそのオブジェクトを
input
要素に渡します。
ホットプロパトのゲーム。
基本的には
inputProps
オブジェクトを
InputProps
に適用し、それを
Field
:
<Field
name="maxNodeSelectedCount"
component={TextField}
label="Max Node Selected Count"
type="number"
InputProps={{ inputProps: { min: 0, max: 10 } }}
format={formatOption}
normalize={normalizeOption}
{...propertyFieldDefaults}
/>
-
フィールドはInputPropsを
TextField
-
TextFieldはInputPropsの内容を
Input
コンポーネントに渡す。 -
inputはinputPropsの内容を
input
要素に渡されます。
これには注意点があります。
は
の現在の実装は、TextField
には独自の値を設定します。
inputProps
に独自の値を設定するため
inputClassName
が適用されるのは
input
要素に適用されます。
独自のinputPropsの値をTextFieldに渡すことで、TextFieldが適用したバージョンを上書きすることになり、結果として
inputClassName
は未設定になります。 もし
inputClassName
を使っている場合は、内側の
inputProps
オブジェクトに含める必要があります。
EDITです。 を投稿しました。 問題 と プルリクエスト を追加して、将来のリリースでこの注意点に対処するようにしました。
関連
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] ReactJS giving error Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] React - 予想外のトークン、予想外の;
-
[解決済み] eslint: no-case-declaration - case ブロックで予期しない字句の宣言があった。
-
React はエラー TypeError を報告します。未定義のプロパティ 'XX' を読み取ることができない、問題は解決されました。
-
[解決済み] 矢印本体を囲む予期せぬブロックステートメント
-
[解決済み] Static HTML elements with event handlers require a role." を修正するにはどうすればよいですか?
-
[解決済み] アクシオスは定義されていません
-
[解決済み] reactのuseStateフックでコールバックを使う方法 [重複]。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Next.jsでWebSocketを利用する
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] jest: テストスイートの実行に失敗しました。予期しないトークンのインポート
-
[解決済み] Angular 2の*ngForのReactでの同等品
-
[解決済み] カスタマイズ素材UI チェックした場合としない場合の切り替え
-
[解決済み] nextjsで異なる.envファイルを使用するには?
-
[解決済み] Error: yarn start - エラー コマンド "start" が見つかりません。
-
[解決済み] 拡張子.tsと.tsxの違いは何ですか?どちらもreactのタイプスクリプトファイルの拡張子として使用されます。では、どこで使うべきなのでしょうか?
-
[解決済み] create-react-appビルドスクリプトを実行する際に、ビルド.env変数を設定するには?
-
[解決済み] React JSXのforEach()でHTMLが出力されない