Как исправить Uncaught TypeError: Невозможно назначить только для чтения свойство 'data' объекта '# <ImageData>' - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь добавить данные в мою тепловую карту.Я использую эту библиотеку, чтобы сделать это https://github.com/pa7/heatmap.js + плагин из этого.

Это мой импорт:

<ltng:require styles='/resource/leafletMarkerCluster/Leaflet.markercluster-1.4.1/dist/MarkerCluster.css, 
                      /resource/leafletMarkerCluster/Leaflet.markercluster-1.4.1/dist/MarkerCluster.Default.css'
              scripts='/resource/leaflet/leaflet.js,/resource/leafletMarkerCluster/Leaflet.markercluster-1.4.1/dist/leaflet.markercluster.js, 
                       /resource/LeafletHeatmapLayer/heatmap.js-develop/build/heatmap.js,
                       /resource/LeafletHeatmapLayer/heatmap.js-develop/plugins/leaflet-heatmap/leaflet-heatmap.js'
              afterScriptsLoaded="{!c.jsLoaded}" />

Счета уже определены:

locationsAccounts[i]=helper.heatpoint(account.ShippingLatitude, account.ShippingLongitude,1);

heatpoint: function Person(latitude, longitude, counter) {
  return {
    lat: latitude,
    lng: longitude,
    count: counter
  };
}

var testData = { max: accounts.length,
                 data: locationsAccounts };

heatmapLayer.setData(testData);

Тепловая карта принадлежит L.control.layers является одним из оверлеев.

ОБНОВЛЕНИЕ Я увидел, что при отладке у меня возникает эта проблема в методах addData и setData: Исключение: TypeError: свойства 'caller', 'callee' и 'arguments' могут быть недоступны при строгомфункции режима или объекты аргументов для вызовов к ним в Function.invokeGetter

1 Ответ

0 голосов
/ 17 февраля 2019

Полагаю, вы находитесь в этом месте.Это кусок кода, который намеренно нарушает правило «строгого» режима, чтобы сгенерировать ошибку, чтобы стек вызовов мог быть выбран из полученной ошибки.Если вы можете игнорировать этот тип ошибки в настройках отладчика, отладчик chromium перестанет вас раздражать.Это произойдет, только если Dexie.debug === true (это значение по умолчанию для сайтов, обслуживаемых с локального хоста).Функция, которую вы получаете в журнале консоли, - это трассировка асинхронного стека необработанных отклонений.Вы можете явно отключить его, установив Dexie.debug = false.

Исходный код выглядит следующим образом:

export function getErrorWithStack() {
"use strict";
if (NEEDS_THROW_FOR_STACK) try {
    // Doing something naughty in strict mode here to trigger a specific error
    // that can be explicitely ignored in debugger's exception settings.
    // If we'd just throw new Error() here, IE's debugger's exception settings
    // will just consider it as "exception thrown by javascript code" which is
    // something you wouldn't want it to ignore.
    getErrorWithStack.arguments;
    throw new Error(); // Fallback if above line don't throw.
} catch(e) {
    return e;
}
return new Error();
}
...