#salesforce #apex #salesforce-lightning
Вопрос:
Я создаю пользовательский компонент lightning-datatable, в котором я хочу отобразить некоторые поля из созданного мной пользовательского объекта. Одно из отображаемых полей, Start_Time__c, имеет тип Time.
Я понял из документации, что для отображения этого поля мне нужно использовать тип «дата» в определении столбца в lightning-datatable (пожалуйста, скажите мне, если я ошибаюсь здесь, и есть лучший способ просто отобразить время).
У меня все отображается нормально, и я могу обновить свой код, чтобы столбец Start_Time__c был доступен для редактирования.
Проблема в том, что я получаю ошибку при попытке сохранить, когда я на самом деле редактирую ячейку, содержащую время начала.
Мой обработчик сохранения выглядит так (скопирован в основном из документации):
const fields = {}; fields[ID_FIELD.fieldApiName] = event.detail.draftValues[0].Id; fields[START_TIME.fieldApiName] = event.detail.draftValues[0].Start_Time__c; const recordInput = {fields}; updateRecord(recordInput).then(() =gt; { this.dispatchEvent( new ShowToastEvent({ title: 'Success', message: 'Contact updated', variant: 'success' }) ); // Display fresh data in the datatable return refreshApex(this.agendaItems).then(() =gt; { // Clear all draft values in the datatable this.draftValues = []; }); }).catch(error =gt; { this.dispatchEvent( new ShowToastEvent({ title: 'Error updating or reloading record', message: error.body.message, variant: 'error' }) ); });
Когда я пытаюсь сохранить, я получаю эту ошибку: Значение для поля «Время начала__c» не соответствует формату ISO 8601, Значение: 1970-01-01T15:00:00.000 Z, Класс выполнения: java.lang.Строка»
Я бы предположил, что передача значения, которое я получаю из таблицы данных, когда поле было отредактировано, должна работать, так как я просто передаю обновленные поля из события сохранения.
Как мне правильно обработать это поле времени (которое вводится как дата-время из-за того, что datatable поддерживает только тип даты)?