SitecoreフォームをJSS Next.jsアプリに実装する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecoreフォームを作成し、そのフォームをSitecoreのJSSアプリ ルートに追加した後、JSSアプリケーションでSitecoreフォームをレンダリングするJSSフォーム コンポーネントを実装できます。
JSSアプリでSitecoreフォームを使用するには、セッションCookieが機能している必要があります。この目的のために、次のことを行います。
-
Next.js JSSアプリでは 、REST Layout Serviceを使用しています。
-
フォームを表示する ルートをサーバー側でレンダリング するには、関数GetServerSidePropsの実装を使用します。
Sitecoreフォーム コンポーネントをJSS Next.jsアプリケーションでレンダリングするには、次の手順に従います。
-
JSSアプリケーションのルートディレクトリで、次のコマンドを実行して必要なパッケージをインストールします。
RequestResponsenpm install @sitecore-jss/sitecore-jss-forms @sitecore-jss/sitecore-jss-react-forms
-
レンダリングアプリのsrcディレクトリにあるコンポーネントファイル( src/components/JssNextForm.tsxなど)に、フォームコンポーネントを実装します。
RequestResponseimport { Form } from '@sitecore-jss/sitecore-jss-react-forms'; import React from 'react'; import { NextRouter, withRouter } from 'next/router'; import { sitecoreApiHost, sitecoreApiKey } from 'temp/config'; const JssNextForm = ({ fields, router }: { fields: any; router: NextRouter }) => { return ( <Form language={router.locale} form={fields} sitecoreApiHost={sitecoreApiHost} sitecoreApiKey={sitecoreApiKey} onRedirect={(url) => router.push(url)} /> ); }; export default withRouter(JssNextForm);
メモNext.jsサーバーに要求を送信するには、sitecoreApiHostをempty string( sitecoreApiHost={''}など) に設定する必要があります。そうしないと、次の手順で設定した書き換えが期待どおりに機能しません。
-
next.config.base.jsファイルで、次の書き換え定義を接続モードの書き換えに追加して、CORSと404エラーを防ぎます。
RequestResponse{ source: '/api/jss/:path*', destination: `${jssConfig.sitecoreApiHost}/api/jss/:path*` },
-
JSSアプリを接続モードで起動しますjss start:connected。