Невозможно прочитать свойство 'map' из неопределенного в массиве javascript - PullRequest
0 голосов
/ 03 июня 2019

Когда я запускаю этот код, я получаю сообщение об ошибке «Не удается прочитать свойство« карта »из неопределенного.

Я пытался перемещаться по функциям, но ошибка сохраняется.

 const users = [{age: 45, height: 5.6, weight: 76, name:'David', country: 'Nigeria', id: '85eir7e0hj'}];

  const select = document.querySelector('.select-text');
  const bmiButton = document.querySelector('#oracle');

  const getSelectedUser = (userId) => {
    return user = users.find(({ id }) => userId === id);

  };

  const displaySelectedUser = ({ target }) => {
    const user = getSelectedUser(target.value);
    const properties = Object.keys(user);
    properties.forEach((prop) => {
      const el = document.querySelector(`[data-${prop}-value]`);
      if(el !== null) el.textContent = user[prop];
    })
  };

  const letsCalculateBMI = () => {

  };

  const powerupTheUI = () => {
    select.addEventListener('change', displaySelectedUser);
    bmiButton.addEventListener('click', letsCalculateBMI)
  }

  const displayUsers = (users) => {
      users.forEach((user) => {
      const opt = document.createElement('option');
      opt.value = user.id;
      opt.textContent = user.name;
      select.appendChild(opt);
    })
  } 
  const fetchAndDisplayUsers = () => {
    users.push({
      age: 40,
      weight: 75,
      height: 6,
      country: 'Nigeria',
      name: 'Charles Odili',
      id: 'dfhb454768DghtF'
    });

    displayUsers(users);
  };

  const startApp = () => {
    powerupTheUI();
    fetchAndDisplayUsers();
  };


  startApp();

1 Ответ

0 голосов
/ 04 июня 2019

Что-то извлекает атрибут .map из пустой переменной. В представленном коде ничего нет: как отмечалось в комментариях, в вашем коде нет map.

Действительно, ваш код работает правильно сам по себе. Я открыл случайную веб-страницу, изменил один элемент HTML на class="select-text", а другой на id="oracle" и вставил ваш код в консоль. Нажатие на элемент #oracle привело к добавлению данных из вашего объекта в .select-text.

Если вы не можете получить строку / источник ошибки, попробуйте следующее (по одному):

  • запуск кода на другой странице без использования JavaScript на исходном,
  • добавление операторов регистрации во всем вашем коде (чтобы увидеть, где другой код может выполняться и мешать), и
  • отключение расширений браузера, смена браузеров, иное устранение других факторов, которые могут повлиять на вашу среду.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...