Apexを使用せずにLightningコンポーネントで現在のユーザー名を表示する方法

Aug 20 2020

こんにちは頂点を書かずにlightningコンポーネントに現在ログインしているユーザー名を表示するすべての方法。{!$ SObjectType.CurrentUser.Id}を試してみると、名前ではなくIDのみが表示されます。誰かが私を助けることができますか

回答

BernhardMiehl Aug 20 2020 at 16:27

セールスフォーススタックエクスチェンジへようこそ!

ここで私はあなたを助ける答えを見つけました:

Salesforcelightningは現在のユーザーのユーザー名を取得します

Lightning Dataサービスを利用すると、apexコントローラーを使用せずにLightningコンポーネントの任意のユーザーフィールドにアクセスできます。

例:

<aura:attribute name="currentUser" type="User"/>
   <force:recordData aura:id="recordLoader" recordId="{!$SObjectType.CurrentUser.Id}" 
fields="FirstName, LastName" 
targetFields="{!v.currentUser}"/> 

構文を使用して値にアクセスします:{!v.currentUser.FirstName}

おそらく、recordDataのfieldsプロパティで「Name」を使用できます。

それがうまくいくことを願っています!

よろしく、ベルンハルト

2 salesforceDeveloper Aug 20 2020 at 20:03

LWCを使用している場合は、以下を使用して現在のユーザー名を取得できます。

import {LightningElement,wire,track} from 'lwc';
import {getRecord} from 'lightning/uiRecordApi';
 
import USER_ID from '@salesforce/user/Id';
 
import NAME_FIELD from '@salesforce/schema/User.Name';
 
 
export default class Userinfoexample extends LightningElement {
    @track error ;
    @track name;
    @wire(getRecord, {
        recordId: USER_ID,
        fields: [NAME_FIELD]
    }) wireuser({
        error,
        data
    }) {
        if (error) {
           this.error = error ; 
        } else if (data) {
            this.name = data.fields.Name.value;
        }
    }
 
}