[設定] でのコンポーネントの表示
売上予測ページのコンポーネントの作成
エクスペリエンスビルダーサイト
ユーティリティバー
Outlook および Gmail
スタンドアロンアプリケーション
Visualforce ページ
フォーム要素
基本的なナビゲーション
クエリパラメータの追加
さまざまなページ種別への移動
デフォルト値を含むレコードの作成
ファイルを開く
モバイルデバイス機能の使用
CRM Analytics ダッシュボード
事前入力された項目値を含むレコードの作成ページを起動するには、lightning/pageReferenceUtils と lightning/navigation を一緒に使用します。
lightning/pageReferenceUtils モジュールには、デフォルト項目値を文字列に符号化および復号化するための encodeDefaultFieldValues() 関数と decodeDefaultFieldValues() 関数が用意されています。符号化文字列を standard__objectPage ページ参照の pageReference.state.defaultFieldValues 属性に割り当てます。
標準アクションでは、デフォルト項目値が URL を介して文字列としてオブジェクトに渡され、リダイレクトと置換が自動的に処理されます。上書きアクションでは、URL から受け取ったデフォルト項目値の文字列の復号化の処理はユーザが行います。
lwc-recipes サンプルリポジトリの navToNewRecordWithDefaults コンポーネントを参照してください。
Tip
この例では、事前入力されたデフォルト値でレコードの作成ページを起動します。
この HTML の例には、取引先責任者を作成するリンクが含まれています。
1<!-- navToNewRecordWithDefaults.html -->
2<template>
3 <lightning-button
4 name="new-with-defaults"
5 label="Go to New Contact with Defaults"
6 class="slds-m-around_medium"
7 onclick={navigateToNewContactWithDefaults}>
8 </lightning-button>
9</template>デフォルト項目値を文字列に復号化するには、encodeDefaultFieldValues() に渡します。符号化文字列をページ参照の state.defaultFieldValues 属性に割り当てます。
1// navToNewRecordWithDefaults.js
2import { LightningElement } from "lwc";
3import { NavigationMixin } from "lightning/navigation";
4import { encodeDefaultFieldValues } from "lightning/pageReferenceUtils";
5
6export default class NavToNewRecordWithDefaults extends NavigationMixin(LightningElement) {
7 navigateToNewContactWithDefaults() {
8 const defaultValues = encodeDefaultFieldValues({
9 FirstName: "Morag",
10 LastName: "de Fault",
11 LeadSource: "Other",
12 });
13
14 console.log(defaultValues);
15
16 this[NavigationMixin.Navigate]({
17 type: "standard__objectPage",
18 attributes: {
19 objectApiName: "Contact",
20 actionName: "new",
21 },
22 state: {
23 defaultFieldValues: defaultValues,
24 },
25 });
26 }
27}標準アクション動作をカスタムソリューションで上書きするには、モジュールを Aura コンポーネント内にラップします。
1// auraOverrideWrapper.cmp
2<aura:component implements="lightning:actionOverride">
3 <c:lwcNewAccountOverride></c:lwcNewAccountOverride>
4</aura:component>lwcNewAccountOverride コンポーネントには、デフォルト項目値を表示する新規取引先レコードページ用のフォームが含まれています。
1<!-- lwcNewAccountOverride.html -->
2<template>
3 <lightning-record-edit-form object-api-name="Account" onsuccess={handleAccountCreated}>
4 <lightning-input-field field-name="Name" value={dfv_AccountName}> </lightning-input-field>
5 <lightning-input-field field-name="NumberOfEmployees" value={dfv_NumberOfEmployees}>
6 </lightning-input-field>
7 <lightning-input-field field-name="OwnerId" value={dfv_OwnerId}> </lightning-input-field>
8 <lightning-input-field field-name="CustomCheckbox__c" value={dfv_CustomCheckbox}>
9 </lightning-input-field>
10
11 <lightning-button class="slds-m-top_small" type="submit" label="Create"> </lightning-button>
12 </lightning-record-edit-form>
13</template>上書きアクションでは、URL から受け取ったデフォルト項目値の文字列の復号化の処理はユーザが行います。
次の例では、CurrentPageReference を使用して state からデフォルト項目値を読み取り、符号化文字列を取得します。次に、文字列を decodeDefaultFieldValues() に渡して復号化し、取引先の作成を処理します。
次の例は、lightning-record-edit-form を使用した項目値の事入力に似ていますが、フォームに移動すると defaultFieldValues が動的に生成されます。
1// lwcNewAccountOverride.js
2import { LightningElement, wire } from "lwc";
3import { CurrentPageReference } from "lightning/navigation";
4import { decodeDefaultFieldValues } from "lightning/pageReferenceUtils";
5
6export default class LwcNewAccountOverride extends LightningElement {
7 @wire(CurrentPageReference)
8 setCurrentPageReference(currentPageReference) {
9 if (currentPageReference.state.defaultFieldValues) {
10 const dfvObject = decodeDefaultFieldValues(currentPageReference.state.defaultFieldValues);
11 this.dfv_AccountName = dfvObject.Name;
12 this.dfv_NumberOfEmployees = dfvObject.NumberOfEmployees;
13 // Handling required for boolean because we don't support boolean field types
14 this.dfv_CustomCheckbox = dfvObject.CustomCheckbox__c === "true";
15 this.dfv_OwnerId = dfvObject.OwnerId;
16 }
17 }
18
19 dfv_AccountName = "";
20 dfv_NumberOfEmployees = "";
21 dfv_OwnerId = "";
22 dfv_CustomCheckbox = false;
23
24 // Run code when account is created
25 handleAccountCreated() {}
26}すべての復号化されたデフォルト項目値は、文字列としてレコード作成ページに渡されます。たとえば、35000 は数値データ型ではなく、文字列としてページに渡され、Boolean 値 true および false は文字列として渡されます。
Important
このコードを使用するには、[設定] から「オブジェクトマネージャ」と入力します。取引先オブジェクトで、CustomCheckbox__c という API 参照名のチェックボックス項目を作成します。次に、[ボタン、リンク、およびアクション] を選択して [新規] アクションを編集します。[Lightning Experience の上書き] で、[Lightning コンポーネント] を選択し、c:auraOverrideWrapper コンポーネントを選択します。
関連トピック
The Japanese Summer '24 guide is now live