inflearn logo
知識共有
inflearn logo

Next.js App routerベースのChat GPTの作成

Nextjs 14バージョンApp routerとvercelのai / sdkを活用して chat gptなどのai chatbotサービスを作成します。

難易度 初級

受講期間 無制限

Next.js
Next.js
ChatGPT
ChatGPT
React
React
TypeScript
TypeScript
TailwindCSS
TailwindCSS
Next.js
Next.js
ChatGPT
ChatGPT
React
React
TypeScript
TypeScript
TailwindCSS
TailwindCSS

お知らせ

1 件

  • eatcoding님의 프로필 이미지

    修正済み

    現在npx create-next-app@latest で nextjs セッティング時バージョンが 15 バージョンがインストールになっています。

    15バージョンで講義を聞くとエラーが出る部分があり、15バージョンで受講される方は必須にご確認ください!

    1. next/headers の cookies が非同期に変更されるので、以下のように使用してください。

    import { cookies } from 'next/headers' // Before const cookieStore = cookies() const token = cookieStore.get('token') // After const cookieStore = await cookies() const token = cookieStore.get('token')

    ソース: https://nextjs.org/docs/app/building-your-application/upgrading/version-15#cookies

    1. layout. page, route handler に入る params も非同期に変更されました。

    // Before type Params = { slug: string } type SearchParams = { [key: string]: string | string[] | undefined } export default async function Page({ params, searchParams,}: { params: Params searchParams: SearchParams }) { const { slug } = params const { query } = searchParams } // After type Params = Promise<{ slug: string }>type SearchParams = Promise<{ [key: string]: string | string[] | undefined }> export default async function Page(props: { params: Params searchParams: SearchParams }) { const params = await props.params const searchParams = await props.searchParams const slug = params.slug const query = searchParams.query }

    ソース: https://nextjs.org/docs/app/building-your-application/upgrading/version-15#asynchronous-page

    1. useFormState -> useActionState に変更

    // Before const [error, action] = useFormState(login, undefined); // After const [error, action, isPending] = useActionState(login, undefined);

    さらに、useActionStateの3番目の戻り値にisPendingがあるため、useActionStatusを使用せずに3回目の戻り値を使用しても問題ありません。

    その他の修正

    • console.error時にブラウザにerrorとして公開され、logに変更

    • SheetコンポーネントでSheetTitleがない場合、エラーが表示され、SheeTitleを追加した後にVisuallyHiddenでラップしてhiddenを処理します。

    • 実行時に tsconfig target 関連 warning が出たら target -> 2020 に上向き

    上記のすべての変更は、以下のgithubで確認できます。参考にしてください!
    https://github.com/eatcoding6/chatgpt-clone/commit/0d2cab8dad7292038da6cc8659a8f31 ac9743c65#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R22

    1

公開していない講座のため、受講が制限されます。