Как вы условно отображаете кнопку в React js на основе того, доступны ли данные из api или нет?

#javascript #reactjs

#javascript #reactjs

Вопрос:

Итак, в настоящее время у меня есть API, который выдает данные центра тестирования на covid из api, и доступ к ним осуществляется через center prop, который передается этому компоненту. Мне было интересно, как условно отобразить кнопку ниже, основываясь на том, есть ли поле номера телефона, доступное в API. Если нет, то просто не отображайте ее.

 const TestingCenter = ({ center }) => {
  return (
    <div className="testing-card">
      <h1>{center.title.slice(22)}</h1>
      <div>
        <h4>{(center.distance / 5280).toFixed(2)} miles away</h4>
        <h3>
          {center.address.houseNumber} {center.address.street},{" "}
          {center.address.city}, {center.address.stateCode}{" "}
          {center.address.postalCode}
        </h3>
        <button>Get Directions</button>
        {center.contacts[0].phone[0].value amp;amp; (
          <button
            onClick={() => console.log(center.contacts[0].phone[0].value)}
          >
            Call Site
          </button>
        )}
      </div>
    </div>
  );
};
export default TestingCenter;
 

Этот компонент TestingCenter отображается и отображается один раз для каждого центра тестирования, доступного из API.
Когда я пытаюсь сделать это выше, я получаю «TypeError: не удается прочитать свойство ‘0’ из undefined».

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

1. добавьте больше деталей и больше кода о вызове api

Ответ №1:

Это может сработать

 {center.contacts amp;amp; center.contacts[0].phone[0].value(
          <button
            onClick={() => console.log(center.contacts[0].phone[0].value)}
          >
            Call Site
          </button>
)}