Задать вопрос
@usbfan_official

Как сделать рендер только один раз?

Делаю фетч запрос, получаю данные, вывожу их все в функции, но при этом получаю бесконечный рендер, как мне его остановить?

function App() {
                  const [users, setUsers] = useState([]);
                  const getApiData = async () => {
                  const response = await fetch(
                    "https://example.site/example/example.php"
                  )
                  .then((response) => response.json());
                 {
                    setUsers(response);
                  }
                };
               
                useEffect(() => {
                  getApiData();
                }, []);
              
              
                
                return (
                  <div className="app">
                    {users.map((user) => (
                        <Div className='popular'>
                        <Avatar src={ava}></Avatar>
                        <Text className='popular'>{user.name}</Text>
                        <Text className='popular'>{user.znak}</Text>
                        <Text className='popular1'>Количество популярности: {user.popularnost}</Text>
                        </Div>
                      ))}
                  </div>
                );   
              }

 return (
...
<App />
...
)
  • Вопрос задан
  • 233 просмотра
Подписаться 1 Простой 20 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • ProductStar
    Разработка на React
    6 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
Решения вопроса 1
Aetae
@Aetae
Тлен
Обернуть App в memo. Ток прям один раз всё равно не получится: один рендер на отображение пустых users, второй на отображение заполненных когда те загрузятся.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 250 000 до 300 000 ₽
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽