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

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

Похожие вопросы