概要
システム開発中にタイトルのようなエラーが発生した。
やりたかったこと。
const [value, setValue] = useState(itemType[0]);
// (略)
onChange={(event: any, newValue: string | null) => {
setValue(newValue);
}}
発生したエラー
型 'ItemType | null'の引数を型 'SetStateAction<ItemType>'のパラメーターに割り当てることはできません。
やったこと
ItemTypeは今回使用した変数です。
中身はこう。
type ItemType = { label: string };
コンソールログで ItemType
の型を調べる。
console.log(typeof(Itemtype)):
結果: object
と出た。
次に、useStateを編集。
これを...
const [value, setValue] = useState(itemType[0]);
こう...。
const [value, setValue] = useState<object | null>(itemType[0]);
これでも、まだエラーは出る。
解決方法
こうではなく、
const [value, setValue] = useState<object | null>(itemType[0]);
こうしてあげるのが正しい書き方だった。
const [value, setValue] = useState<itemType | null>(itemType[0]);
まとめ
いろんな方がこのエラーの解決方法は書いていたが、今回のように型をこっちで用意して当てはめているパターンを見かけなかったので少し時間がかかった。
reactではtypeを自分で作成することができるのでこのエラーは今後も現れそうなので自分用にも( ..)φメモメモ。