仕事でMUIを使ったコードを読んでたらTextFieldのプロパティにinputProps
, InputProps
とi
,I
で両方あることに気付いた
違いは何だと言うことで調べた
InputProps
Input要素に適用されるプロパティ
variant prop の値に応じて、FilledInput、OutlinedInput、Inputコンポーネントのいずれかになる
なるほど、TextFieldはFilledInput,OutlinedInput,Inputをより抽象化したコンポーネントで、この3つのコンポーネントのどれかに適用させるプロパティを指定するということのよう
試しにFilledInputのAPIドキュメントを見に行くとinputProps
のみしかないのでなるほどとなった
このページでのPropsの中で指定したいものがあれば指定するとういことと理解した
たとえばcolor
とか
あとはTextFieldを使って汎用的なカスタムコンポーネントを作った場合などもInputProps
を受け取ってそのままTextField
に流すことでカスタマイズ可能で汎用的なカスタムコンポーネントを作れる
inputProps
input要素に適用するプロパティを指定する
お馴染みのinput
タグに指定するプロパティを指定する
たとえばvalue
とか
どのタグやコンポーネントに作用させたいかでPropsの大文字小文字を切り替えると理解した
よく考えられているなーと感じたが初見ではとっつきづらいしややこしいな…と感じた