Я попытался отобразить все связанные контакты учетной записи на основе AccountId (этот компонент размещен на странице записи учетной записи). В моем выводе я мог видеть, что видны только заголовки, а сведения о контактной записи не отображаются.

.html

<template>
    <lightning-card title="Displaying COntacts">
        <table>
            <tr>
                <th>Email</th></tr>                
                    <th>Phone</th>
                <tbody>
            <template for:each={records} for:item="r">
                <tr key={r.Id}>
                  <td>  {r.Email} </td>                
                <td>{r.Phone}</td>
                </tr>
            </template>
        </tbody>
        </table>
    </lightning-card>
</template>

.js

import { LightningElement,track,wire } from 'lwc';
import displayContacts from '@salesforce/apex/displayContactsonAcc.displayContacts';

const columns = [
    {
        label: 'Last Name',
        fieldName: 'LastName'
    },
    {
        label: 'Email',
        fieldName: 'Email',
        type: 'email'
    },
    {
        label: 'Phone',
        fieldName: 'phone',
        type: 'phone'
    }
 
];

export default class DisplayContactsonAcc extends LightningElement {
    @track accountId;
    @track records;
    @wire(displayContacts, {accountId: '$accountId' })
    getConList({error,data}) {
        if(data)
        {
            this.records = data;
            this.error = undefined;
        }
        else
        {
            this.records = undefined;
            this.error = data;
        }
    }
}

Апекс

public with sharing class displayContactsonAcc {
    @AuraEnabled    
    public static List<Contact> displayContacts(String accountId) {
        List<Contact> conList = [SELECT Id,LastName,Email,Phone,AccountId FROM Contact WHERE AccountId =: accountId LIMIT 10];
        return conList;         
    }  }

Не знаю, где ошибка, помогите найти. Я сослался на много статей для решения и не повезло

-1
TSmith 21 Дек 2021 в 12:57
1
Если вы добавите System.debug('Идентификатор моей учетной записи: ' + accountId); в первую строку контроллера, и вы запускаете компонент, что выводит это в журналах отладки? Я подозреваю, что вы не захватываете идентификатор записи (accountId), поэтому список возвращает нулевые контакты (вероятно, нет контактов без учетных записей).
 – 
xouns
21 Дек 2021 в 13:35
Не могли бы вы попробовать заменить @track accountId на @api recordId? Я также предлагаю вам изучить developer.salesforce.com /docs/component-library/documentation/…
 – 
Jeferson Chaves
21 Дек 2021 в 13:42

1 ответ

Это больше похоже на недопонимание данных, которые вы пытаетесь отобразить в пользовательском интерфейсе, и данных в БД. Поскольку <template for:each={records} for:item="r"> работает только с Email и Phone, любые записи, возвращаемые в вашем SOQL без значения в обоих этих полях, будут удалены из пользовательского интерфейса. Я предполагаю, что у контактов, связанных с учетной записью, которую вы тестируете, нет таких значений.

Просто добавьте <td>{r.LastName}</td> (обязательное поле в разделе «Контакты») в свой HTML-код, чтобы быстро понять взаимосвязь между JS и Apex.

Обновить

Поскольку ваш LWC работает со страницы записи, чтобы сообщить ему о своем контексте, вы должны использовать recordId вместо accountId.

@api recordId;

@wire(displayContacts, { accountId: '$recordId' })
0
TSmith 21 Дек 2021 в 15:43
Контакт имеет значение для электронной почты и телефона, а также я попробовал {r.LastName}.. все еще подробности записи не отображаются в компоненте, кроме заголовков
 – 
Sumo sales
21 Дек 2021 в 15:34
Посмотреть мое последнее обновление
 – 
TSmith
21 Дек 2021 в 15:43
По-прежнему детали записи не отображаются, а также я мог видеть это ниже строк в консоли. Объект InstrumentationResult: (RECEIVED = 40, SUCCESS -> LOG = 40, SUCCESS -> CE = 1, Topic = AILTN), TracingResponse: (AsyncResults), TelemetryResponse: (AsyncResults): InstrumentationResult: {AILTN: {…}} TelemetryResponse: {УСПЕХ: 0, ОШИБКА: 0} TracingResponse: {УСПЕХ: 0, ОШИБКА: 0} [[Прототип]]: Объект [[Прототип]]: Объект
 – 
Sumo sales
21 Дек 2021 в 16:24