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

アクセスの制御

このフレームワークでは、access システム属性を介して、アプリケーション、インターフェース、コンポーネント、属性、イベントへのアクセスを制御できます。access システム属性は、リソースをその名前空間外で使用できるかどうかを示します。

access システム属性は次のタグで使用します。

  • <aura:application>
  • <aura:interface>
  • <aura:component>
  • <aura:attribute>
  • <aura:event>

アクセス値

access システム属性には、次の値を指定できます。

private
コンポーネント、アプリケーション、インターフェース、イベント内では使用できますが、外部からは参照できません。この値は、aura:attribute にのみ使用できます。
public
同じ名前空間内で使用できます。これはデフォルトのアクセス値です。
global
すべての名前空間内で使用できます。

コンポーネントなどのリソースを access="global" としてマークし、リソースを自分の組織外で使用できるようにします (インストール済みパッケージや、他の組織の Lightning アプリケーションビルダーユーザまたはコミュニティビルダーユーザがコンポーネントを使用できるようにするなど)。

メモ

次のサンプルコンポーネントにはグローバルアクセス権があります。

1<aura:component access="global">
2    ...
3</aura:component>

アクセス違反

アクセスを許可する access システム属性のないコンポーネントや属性などのリソースにコードがアクセスすると、そのコードは実行されないか、undefined が返されます。また、デバッグモードを有効にした場合は、ブラウザコンソールにエラーメッセージが表示されます。アクセス権チェックの適用は、今回のリリースの重要な更新です。この更新を行わなければ、ブラウザコンソールにエラーメッセージではなく警告メッセージが継続的に表示されます。

イベントのアクセス権チェック失敗はまだ適用されず、デバッグモードを有効にした場合に、ブラウザコンソールに警告として表示されます。今後のリリースではフレームワークによってこれらのイベントのアクセス権チェックがさらに厳格に適用されるため、無視することはできません。

メモ

アクセス権チェックエラーメッセージの構造

アクセス違反のアクセス権チェックエラーメッセージのサンプルを次に示します。

1Access  Check  Failed ! ComponentService.getDef():'markup://c:targetComponent' is not visible to 'undefined'.

エラーメッセージは、次の 4 つの部分で構成されます。

  1. コンテキスト (誰がリソースにアクセスしようとしているか)。この例では、undefined です。
  2. 対象 (アクセスされているリソース)。この例では、markup://c:targetComponent です。
  3. エラーの種類。この例では、not visible です。
  4. エラーをトリガしたコード。通常はクラスメソッドです。この例では、対象定義 (コンポーネント) にアクセスできなかったことを示す ComponentService.getDef() です。定義には、コンポーネントなどのリソースのメタデータが記述されます。

アクセス権チェックエラーの修正

アクセス権チェックエラーは、次の 1 つ以上の方法を使用して修正できます。

  • 所有するリソースに適切な access システム属性を追記する。
  • 使用できないリソースへの参照をコードから削除する。
  • アクセスしている属性が存在し、大文字小文字の区別も含め正しいスペルを使用していることを確認する。

    アクセスコンテキストでは属性が未定義であるか非公開であるかを判断できないため、未定義属性にアクセスした場合と非公開属性にアクセスした場合とは同じアクセス違反メッセージがトリガされます。

  • $A.getCallback() を使用して、setTimeout() または setInterval() コールや ES6 Promise の場合のように通常の表示ライフサイクル外のコンポーネントにアクセスするコードをラップする。

    $A.getCallback() では、現在の実行コンテキストが保持され、非同期コードに正しいアクセスレベルが付与されます。それ以外の場合は、フレームワークでコンテキストが失われ、グローバルリソースへのアクセスのみが許可されます。

重要な更新の有効化

この更新を Sandbox 組織または Developer Edition 組織���テストして、正しい動作を確認してから本番組織で有効にすることをお勧めします。

この重要な更新を有効化する手順は、次のとおりです。

  1. [設定] から、[クイック検索] ボックスに「重要な更新」と入力して、[重要な更新] を選択します。
  2. [Lightning コンポーネントのアクセス権チェックの適用] の [有効化] をクリックします。