クエリパラメータの追加
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 プロパティが更新されます。コンポーネントはパネルを表示または非表示にするために再表示され、リンクラベルが更新されます。