
Tailwind.cssの導入方法、すごく簡単だったのでやってみよう
Enterで検索 Escで閉じる
React初心者の私にとって意味不明だったエラーをやっと解決できた!嬉しい!
このエラーメッセージ “Error: Objects are not valid as a React child” は、Reactでコンポーネントがレンダリングされる際に、オブジェクトが直接子供として使用されているときに発生するらしい。難しくてよくわからないけど、Reactは通常、文字列や数値のようなプリミティブな型を子供として扱いますが、オブジェクトは直接は受け付けない。
簡単にまとめると、コンポーネントにpropsでオブジェクトを渡すと出てくるエラーらしい。
propsをいまいち理解できてなかったので、なかなか解決できなかった。
オブジェクトは渡せない…わけではないけど、このままではエラーになる。
// 例: エラーが発生する
const myObject = { key: 'value' }; // これがオブジェクト
return <MyComponent prop={myObject} />; // propsにオブジェクトを渡しているからエラーになる
オブジェクトの中にコンポーネントがあってもダメ
// 例: エラーが発生する
const myObject = { key: <SomeComponent /> }; // オブジェクトの中に、コンポーネントがある
return <MyComponent prop={myObject} />;
オブジェクトがシンプルな場合は、コンポーネントに渡す前に、それを文字列や数値などのプリミティブな型に変換する。
// 例: オブジェクトを文字列に変換する
const myObject = { key: 'value' };
return <MyComponent prop={JSON.stringify(myObject)} />; // ここで変換する
オブジェクト内にコンポーネントがある場合、そのコンポーネントを正しくレンダリングする。
// 例: オブジェクト内のコンポーネントをレンダリングする
const myObject = { key: <SomeComponent /> };
return <MyComponent prop={myObject.key} />; // ここでkeyを指定すればできるらしい
今後同じようなエラーを解決できるようになるために、できることはこの4つ。
ここで紹介していることが全てではなく、あくまで私が解決したパターンはこれでしたって感じです。
また地道にReactの勉強をしていこうと思います。
下記のReact公式サイトを読み漁ったらなんとか分かりました。
この記事は役に立ちましたか?
保存した記事はありません