JSSアプリケーションで複数のプレースホルダーを使用するとプレースホルダー キーが不定となる


解説

エクスペリエンス エディターで、最初のプレースホルダー以外のプレースホルダーにレンダリングを追加すると、未処理の例外で失敗する可能性があります。この場合、問題が起きるプレースホルダーにはphkey属性だけがあり、key属性が存在しないという特徴があります。この問題が発生する可能性のあるシナリオとして、次の2つが挙げられます。

この問題は、Sitecore JavaScript Rendering SDK (JSS) 19.0.0および20.0.0をベースとしたReactソリューションで発生します。

また、ログ ファイルに以下のエラー メッセージが出力される可能性があります。

Exception: System.InvalidOperationException
Message: placeholderKey
Source: Sitecore.ExperienceEditor
   at Sitecore.Pipelines.ExecutePageEditorAction.InsertRendering.Process(PipelineArgs args)
   at (Object , Object )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists)
   at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
   at Sitecore.Pipelines.ExecutePageEditorAction.ExecutePageEditorActionPipeline.Run(ExecutePageEditorActionArgs args)
   at Sitecore.Shell.Applications.WebEdit.Palette.OnPreInit(EventArgs e)
   at System.Web.UI.Page.PerformPreInit()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

加えて、エクスペリエンス エディターでプレースホルダーにレンダリングを追加する際に、「エラーが発生しました(An error occurred)」ポップアップ メッセージがUIに表示される可能性があります。

解決策

この問題を解決するには、以下のいずれかのオプションの実施を検討してください。