クイックアクションナビゲーション

クイックアクションを使用して、レコードページでカスタム Lightning Web コンポーネントを呼び出します。まず、クイックアクションのコンポーネントを設定し、そのコンポーネントをページレイアウトに追加することでレコードページに追加します。ヘッドレスクイックアクションはモーダルウィンドウを開きませんが、画面クイックアクションは開きます。

ヘッドレスクイックアクションのコンポーネントを作成するには、コンポーネント用に空のテンプレートを作成して、[NavigationMixin.Navigate](pageReference, [replace]) 関数を使用します。

lwc-recipes リポジトリの navigateToRecordHeadlessAction コンポーネントの例では、ヘッドレスクイックアクションを使用して、取引先責任者の作成ページに移動しています。

この例では、レコードページのクイックアクションボタンをクリックすると、取引先責任者の作成ページを表示するモーダルウィンドウが開きます。

replace のデフォルトは false です。モーダルウィンドウが開くと、URL が変更されます。ブラウザーの [戻る] ボタンを使用すると、その前に開いていたレコードページに戻ることができます。同様に、参照項目を使用して別のモーダルウィンドウを開くと (たとえば、[取引先名] 項目を使用して新規レコードを作成する場合など)、[新規取引先] モーダルが表示された時点で URL が再び変更されます。

replace が true であれば pageReference はブラウザー履歴の既存エントリを置き換えます。この場合、pageReference で定義されたモーダルウィンドウでブラウザーの [戻る] ボタンをクリックすると、クイックアクションボタンのあるレコードページの前に訪れていたページに戻ります。

たとえば、モーダルを表示する画面クイックアクションがあり、そのモーダルが [NavigationMixin.Navigate](pageReference, [replace]) を使用して、特定のpageReference を使用したモーダル (レコード作成ページなど) を表示するとします。

replace のデフォルトは false であるため、前のモーダルは自動的には閉じません。この場合、新しいモーダルは前のモーダルの上にフロート表示されます。

たとえば、コンポーネントからレコード作成ページのモーダルを開くと、コンポーネントを含むモーダルは開いたままですが、レコード作成ページが表示された新しいモーダルがその上にフロート表示されている間は非アクティブとなります。レコード作成ページが表示された新しいモーダルを閉じると、コンポーネントを含む以前のモーダルが再びアクティブになります。

モーダルの移動時に前のモーダルを自動的に閉じるには、replacetrue に設定します。

この screenQuickAction の例には、ボタンを含む画面クイックアクションが示されています。このボタンをクリックすると、取引先責任者の作成ページに移動します。

replace のデフォルトは false です。そのため、ボタンをクリックして取引先責任者の作成ページに移動すると、screenQuickAction モーダルは開いたまま非アクティブになり、取引先責任者の作成モーダルがその上にフロート表示されます。

前の例の取引先責任者の作成モーダルのように、ページ参照からレコードを正常に作成すると、クイックアクションを含むレコードページにリダイレクトされて戻されます。

replace が true であれば、クイックアクションの [取引先責任者を作成] ボタンからページ参照を開いた時点でクイックアクションモーダルが削除されます。ただし、次の方法で新しいモーダルを開いた場合は、前のモーダルは保持されます。

  • 参照項目を使用してレコードを作成した場合。この場合は、取引先責任者の作成モーダルの [取引先名] 項目などを介してレコードの作成モーダルが開きます
  • クイックアクションモーダルの lightning/modal モジュールから LightningModal をインポートして別のモーダルを開いた場合

取引先責任者の作成モーダルのように、ページ参照からレコードを正常に作成すると、新たに作成されたレコードにリダイレクトされます。