Я сумасшедший?

У меня две функции:

export const timeblocks = (data) => {
  const res = data.map((d) => timeblock(d));
  console.log("tbs res[0].start", res[0].start);
  console.log("tbs res", res);
  return res;
}

export const timeblock = (data) => {
  const res = {
    id: data.id,
    start: moment(data.start),
    end: moment(data.end),
    duration: moment.duration(data.duration),
    timezone: data.timezone,
  };
  // return Object.freeze(res);
  console.log("tb res.start", res.start);
  console.log("tb res", res);
  return res;
}

Я передаю данные так: timeblocks(sampleData):

sampleData = [
  {
    "id": 1010,
    "start": "2019-11-21T05:00:00Z",
    "end": "2019-11-21T05:30:00Z",
    "duration": "00:30:00",
    "timezone": "UTC"
  },
  {
    "id": 1052,
    "start": "2019-11-21T05:00:00Z",
    "end": "2019-11-21T06:00:00Z",
    "duration": "01:00:00",
    "timezone": "UTC"
  }
]

Ключи start и end генерируют ошибку TypeError, неопределенную в моем приложении React.

Однако я также получаю следующее:

Console log for data mapping in js

Object.freeze работает , но почему значения преобразуются в неопределенные?

Я не могу сказать, является ли это моментом.js или JS.

-2
valem 21 Ноя 2019 в 19:36
3
Можете ли вы включить некоторые примеры данных?
 – 
Sam Walpole
21 Ноя 2019 в 19:40
2
Вам нужно вставить больше кода и показать, как вы вызываете две вставленные функции. Я думаю, что есть некоторый .toValue, который вам также нужно вызвать в объекте moment.js.
 – 
aarosil
21 Ноя 2019 в 19:40
Добавлены образцы данных! Спасибо!
 – 
valem
21 Ноя 2019 в 19:43
1
Я не могу воспроизвести его. Похоже, что-то еще удаляет значение start после выполнения этого кода.
 – 
VLAZ
21 Ноя 2019 в 19:48
Возможно, вы захотите сначала JSON.stringify журналов консоли. Вы можете проверить, является ли это moment.js, удалив вызовы момента. Если вы видите свои исходные данные в начальных и конечных членах, значит, дело в вызовах момента.
 – 
Ted Fitzpatrick
21 Ноя 2019 в 20:03

1 ответ

Что-то вниз по течению меняет мои начальные и конечные значения. Поскольку результирующий объект является изменяемым, эти два значения становятся неопределенными. Я понял, что это будет входить в систему непосредственно перед передачей полученного значения в действие с избыточностью. Спасибо @VLAZ за совет

0
valem 21 Ноя 2019 в 20:05