Задать вопрос
@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 />
...
)
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Простой 20 комментариев
Решения вопроса 1
Aetae
@Aetae
Тлен
Обернуть App в memo. Ток прям один раз всё равно не получится: один рендер на отображение пустых users, второй на отображение заполненных когда те загрузятся.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽