react axios два раза выводит данные с сервера

Рейтинг: 1Ответов: 1Опубликовано: 07.04.2023

Такая проблема. У меня есть код на ts react, который получает данные сервера с помощью axios. Но при получении данных с сервера в консоль браузера выводится два раза объект, который получили с сервера, но при этом во вкладке сети, он делает один запрос на сервер. Однако, если я вынесу запрос к серверу выше функции App, то выведется один раз объект в консоли браузера. В качестве сервера я использовал fakeapi.

function App() {
    async function fetchPosts() {
        const response = await axios.get<IProduct[]>(url)
        console.log(response)
    }
    useEffect(() => {
        fetchPosts()
    }, [])

  return (
    <div className="App">
        Hey
    </div>
  );
}

Ответы

▲ 2Принят

Это происходит у вас двойной "рендер" из-за установленного тега React.StrictMode в index.ts.

Этот "двойной рендер" выполняется только в режиме "разработке" и помогает обнаруживать случайные побочные эффекты на этапе рендеринга комонентов.

Если дополнительный рендеринг нарушает работу вашего компонента, это означает, что в вашем компоненте есть ошибка (скорее всего) в соответствии с философией команды React.

Для отключения этого режима (что не рекомендуется делать) удалить обертку React.StrictMode в вашем index.ts