Я пытаюсь выяснить, как отображать значения для нескольких полей в веб-компоненте Lightning, который управляется следующим запросом SOQL: SELECT Id, ActivityDateTime, Account.Name, Who.Name, Subject FROM Event

Результирующие результаты запроса в Workbench возвращаются следующим образом: введите здесь описание изображения

В моем LWC я могу отобразить первые 3 поля, но значения «Account.Name» и «Name.Name» в настоящее время возвращают пустое значение, когда я пытаюсь сослаться на них, используя эти имена полей в моем файле javascript.

Это мои вопросы, которые мне могли бы помочь понять:

  1. Какой правильный формат использовать для отображения значений «Имя учетной записи» и «Имя контактного лица»?
  2. Почему столбец «Тема» отображается перед двумя последними в результатах, хотя в запросе SOQL он стоит последним?
  3. Почему в результате отображается Name.Name вместо Contact.Name?

Огромное спасибо!

0
Smart Systems 5 Сен 2020 в 00:21

1 ответ

Лучший ответ

Какой правильный формат использовать для отображения значений «Имя учетной записи» и «Имя контактного лица»?

Вы должны сгладить объект, потому что таблица данных не может пересекать отношения объектов. Что-то типа:

this.events = data.map((datum) => ({...datum, contactName: datam.Who.Name, accountName: datum.Account.Name }));

Затем вы обращаетесь к ним как к их уплощенному имени:

{ fieldName: 'contactName', label: 'Contact Name', type: 'text' }

Почему столбец «Тема» отображается перед двумя последними в результатах, хотя в запросе SOQL он стоит последним?

Я почти уверен, что workbench сортирует столбцы таким образом. Похоже, они возвращаются из API по порядку.

Query result from API

Почему в результате отображается Name.Name вместо Contact.Name?

Поскольку Who имеет тип Имя , который используется всякий раз, когда у вас есть полиморфное поле (например, Кто указывает и на Лид, и на Контакт). См. скриншот выше.

1
sfdcfox 5 Сен 2020 в 01:25
Спасибо, что указали мне правильное направление и за разъяснения.
 – 
Smart Systems
5 Сен 2020 в 20:01