@VloVer

UseState React не обновляет данные?

const [lists, setLists] = useState(null);

useEffect (() => {
      async function getUser() {
         try {
           const response = await axios.get('http://localhost:3001/lists');
           const {data} = response;
           setLists(data);
           console.log(lists);
         } catch (error) {
           console.error(error);
         }
       }
       getUser() 
      axios.get('http://localhost:3001/lists').then(({ data }) => {
         let list = data;
         setLists(list);
      });
   }, [])


Я хочу получить данные с сервера использую json-server, для получения использую библиотеку axios, мне надо потом передать lists в другой компонент, и там его через map перебрать, и отрендерить, но выдает ошибку 'Cannot read property 'map' of null', это и понятно, ведь не обновляется state, и в лист null, я выводил list в другом копоненте тоже null, подскажите где ошибка, извините если она банальна, но в реакте не так давно...

Пробовал как с asynk/await так и без него, результат тот же
  • Вопрос задан
  • 506 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Запрос данных асинхронен, так что рендеринг с lists равным null будет выполнен в любом случае. И вот там, где вы пытаетесь lists перебирать, проверяйте, что он не null - тогда вызывать map можно. Или устанавливайте в качестве дефолтного значения вместо null пустой массив.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 15:31
70000 руб./за проект
25 апр. 2024, в 15:26
15000 руб./за проект
25 апр. 2024, в 15:13
3000 руб./за проект