- コーディング
【WordPress】データベースのデータを取得して動的に投稿ページを生成する
- #WordPress
こんにちは!
まついちです。
Udemyの教材でReact.jsの勉強をしています。
ローカル環境で作業していた際に表題のエラーに遭遇しました。
今回はこのエラー解消についてご紹介します。
Unhandled Runtime Error
Error: Functions cannot be passed directly to Client Components
unless you explicitly expose it by marking it with "use server".
{subtle: function, left-accent: ..., top-accent: ..., solid: ...}
未処理のランタイムエラー
エラー: 「サーバーを使用」とマークして明示的に公開しない限り、関数をクライアント コンポーネントに直接渡すことはできません。
{subtle: function, left-accent: …, top-accent: …, solid: …}
該当ファイルの先頭行に"use client";
を追加してあげると解消しました。
こちらのページが参考になりました。
Next13からコンポーネントのレンダリングはデフォルトでサーバーサイドで行うようになったようです。
なので、こちらにも記載があるように、ファイルに’use client’と明示する必要がありました。
修正前
import { Button, ChakraProvider } from '@chakra-ui/react';
import theme from './theme/theme';
export default function Home() {
return (
<ChakraProvider theme={theme}>
<Button colorScheme='teal'>ボタン</Button>
</ChakraProvider>
)
}
修正後
"use client";//追加
import { Button, ChakraProvider } from '@chakra-ui/react';
import theme from './theme/theme';
export default function Home() {
return (
<ChakraProvider theme={theme}>
<Button colorScheme='teal'>ボタン</Button>
</ChakraProvider>
)
}
初心者にはこういったエラーでもあたふたしてしまいます。
けれども、何事も小さな一歩が大事ですね。
こういったナレッジを残していただけるのはすごい有難いなと感じた1日でした。