最近フロントエンドの技術に興味が湧き、Reactのフレームワーク「Next.js」を勉強していた時のこと。
チュートリアルで作ったWebサイトをVercelにデプロイすると以下のエラーが発生してビルドに失敗してしまった。
Error: Do not pass children as props. Instead, nest children between the opening and closing tags. react/no-children-prop
今回はこのエラーの解決法を紹介する。
エラーの原因と解決法
まず、エラーの原因となっていたコードを抜粋したものがこちら。
const contents = props.markdownBody
<ReactMarkdown children={contents} />
検証した結果、マークダウンをHTMLに変換するReactMarkdown
で、children
に対し読み込んだマークダウン形式のコンテンツを与えていたのが問題だったようだ。
上記のコードを以下の通り修正する。
<ReactMarkdown>{contents}</ReactMarkdown>
エラーメッセージを翻訳したものがこちらで、指示どおりにchildren
に与えるコンテンツを開始タグと終了タグで囲んであげることで、今回のエラーは解消することができた。