Highchart не отображает данные из динамически созданного массива массивов - PullRequest
0 голосов
/ 17 июня 2020

Я использую базу данных Firebase Realtime для получения данных для визуализации в Highchart. Я объявил пустой массив.

    arrY = [];

И затем внутри функции я подставляю sh значение оси x вместе с меткой времени для массива.

   arrY.push([time, parseFloat(tempC)]);

Затем при запуске Highchart, когда я назначаю массив серии, диаграмма не отображается (в консоли нет сообщения об ошибке)

           series: [{
                name: 'Temperature',
                data: arrY
            }]

Однако, если я жестко закодирую массив с его значением и меткой времени и назначу его на highchart он отображается

    a = [[1591815122, 28],[1591815141, 28],[1591815161, 28],[1591815180, 28],[1591815200, 28]];

и

           series: [{
                name: 'Temperature',
                data: arrY
            }]

, когда я регистрирую оба массива в консоли, оба отображаются как массивы, но почему один работает, а другой нет работает? Консольный вывод на рисунке ниже

Console Output

1 Ответ

1 голос
/ 17 июня 2020

Проблема, которую вы пытаетесь решить, связана с JavaScript Асинхронным. Обратите внимание, что при console.log arrY это пустой массив. Вам нужно отложить рендеринг диаграммы до тех пор, пока данные не будут загружены с сервера.

В настоящее время происходит примерно следующее:

  1. Массив определен,
  2. Диаграмма отображается с пустым массивом,
  3. Данные загружаются и помещаются в массив,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...