この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

force:hasRecordId

force:hasRecordId インターフェースを Lightning コンポーネントに追加すると、現在のレコードの ID をコンポーネントに割り当てることができます。現在のレコード ID は、Lightning Experience または Salesforce1 のオブジェクト固有のカスタムアクションやアクション上書きなどとして、コンポーネントを Lightning レコードページで使用する場合に便利です。このインターフェースは、Lightning Experience、Salesforce1、およびテンプレートベースのコミュニティ内で使用される場合以外は影響しません。

このインターフェースはマーカーインターフェースです。マーカーインターフェースは、インターフェースの動作をコンポーネントに追加するよう伝える、コンポーネントのコンテナへの信号です。コンポーネントに特定のメソッドまたは属性を実装する必要はありません。コンポーネントの implements 属性にインターフェース名を追加するだけです。

force:hasRecordId インターフェースは、このインターフェースを実装するコンポーネントに対して 2 つのことを行います。
  • recordId という名前の属性をコンポーネントに追加します。この属性は文字列型であり、その値は 18 文字の Salesforce レコード ID (001xx000003DGSWAA4 など) です。これを自分で追加した場合、属性の定義は次のようなマークアップになります。
    1<aura:attribute name="recordId" type="String" />

    コンポーネントで force:hasRecordId を実装する場合、recordId 属性をコンポーネントに自分で追加する必要はありません。追加する場合は、属性のアクセスレベルまたは型を変更しないでください。変更すると、コンポーネントでランタイムエラーが発生します。

    メモ

  • Lightning Experience または Salesforce1 のレコードコンテキストでコンポーネントを呼び出す場合、recordId を、表示するレコードの ID に設定します。

recordId 属性は、レコードのコンテキストでコンポーネントを配置または呼び出す場合にのみ設定されます。たとえば、レコードページにコンポーネントを配置する場合、またはレコードページやオブジェクトホームからコンポーネントをアクションとして呼び出す場合などがこれに該当します。その他の場合 (このコンポーネントをプログラムで別のコンポーネント内に作成する場合など)、recordId は設定されないため、コンポーネントでこれを使用しないでください。

次の例に、force:hasRecordId インターフェースを Lightning コンポーネントに追加するために必要なマークアップを示します。

1<aura:component implements="force:lightningQuickAction,force:hasRecordId">
2
3    <!-- ... -->
4    
5</aura:component>

コンポーネントのコントローラは、component.get("v.recordId") を使用して、recordId 属性から現在のレコードの ID にアクセスできます。recordId 属性は、force:hasRecordId インターフェースによって自動的にコンポーネントに追加されます。