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

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

Войти через центр авторизации
Похожие вопросы