значение.формат не является функцией в react js при форматировании дат

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я получаю эту ошибку при попытке изменить значения следующими способами

 const columns = [
    { label: 'Title', key: 'title' },
    { label: 'Start', key: 'start_time',format: (value, { all_day }) => <span className="start-time">{value.format(timeFormat(all_day))}</span>},
    { label: 'End', key: 'end_time'},
    { label: 'Status', key: 'status', format: (value) => <Status status={value} /> }
  ]
 

и это вызывает ошибку, о которой я упоминал.
где timeFormat

const timeFormat = (allDay) => allDay ? 'MM/DD/YYYY' : 'MM/DD/YYYY [@] h:mma

Хотя я использую то же самое в других позициях, где он работает нормально. Пожалуйста, помогите, где я делаю неправильно. Я получаю эту ошибку при форматировании дат, что означает, что при отображении данных в таблице это показывает ошибку.

Комментарии:

1. Отредактируйте свой вопрос и включите всю необходимую информацию для минимального, полного и проверяемого примера.

2. каково значение значения?

3. Я думаю, вы перепутали Java format с JS. потому что ваш метод неоднозначен внутри span

4. это дата «2019-01-16T05:00:00.000Z»

5. нет @Amir-Mousavi Я использую то же самое и в других местах

Ответ №1:

.format() является частью Moment.js поэтому вы должны включить его в свое приложение, а затем использовать его:

 const value = "2019-01-16T05:00:00.000Z";
const timeFormat = (allDay) => allDay ? 'MM/DD/YYYY' : 'MM/DD/YYYY [@] h:mma'
console.log(moment(value).format(timeFormat())) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>