クエリパラメータの追加

URL にクエリパラメータを追加するには、PageReference.state プロパティを更新します。ナビゲーションサービスは PageReference を使用して URL を生成します。state プロパティのキー - 値ペアは URL クエリパラメータにシリアライズされます。クエリパラメータは、ユーザが保存またはブックマークできるページとフォームの具体的な URL を記述します。

state プロパティを使用するときは、次の点に留意してください。

  • PageReference オブジェクトは凍結されているので、直接変更することはできません。変更された state を持つ同じページに移動するには、現在の PageReference をコピーし、Object.assign({}, pageReference) を使用してコピーを変更します。
  • state プロパティでは、名前空間プレフィックスの後に続けて 2 つのアンダースコア (__) を使用する必要があります。コンポーネントが管理パッケージの一部ではない場合、名前空間プレフィックスに c を使用します。コンポーネントが管理パッケージの一部である場合、パッケージの名前空間を使用します。
  • PageReference.state のキー - 値ペアは URL クエリパラメータにシリアライズされるため、すべての値は文字列でなければなりません。
  • state の値を使用するコードは、値を正しい形式で解析する必要があります。
  • state オブジェクトの値を削除するには、その値を undefined として定義します。
  • HTTPS を使用するときでも、URL パラメータの個人データは安全ではありません。詳細は、「Storing Sensitive Data (機密データの保存)」を参照してください。
  • Aura または LWR テンプレートで作成された Lightning Experience および Experience Builder サイトでは、URL クエリ文字列のみが変更されても、ビューは再表示されません。URL クエリ文字列の変更に反応させるには、コンポーネントから CurrentPageReference オブジェクトを観察し、ページ参照の state と比較することを推奨します。

次の例のコンポーネントには、Hide Panel という表示ラベルのリンクがあり、このリンクをクリックするとラベルは Show Panel に変わります。いずれかのリンクをクリックすると、現在のページの状態が更新されます。ページの状態が変更されると、@wire(CurrentPageReference) でデコレートされた this.currentPageReference プロパティが更新されます。コンポーネントはパネルを表示または非表示にするために再表示され、リンクラベルが更新されます。