Задать вопрос
@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 так и без него, результат тот же
  • Вопрос задан
  • 536 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Запрос данных асинхронен, так что рендеринг с lists равным null будет выполнен в любом случае. И вот там, где вы пытаетесь lists перебирать, проверяйте, что он не null - тогда вызывать map можно. Или устанавливайте в качестве дефолтного значения вместо null пустой массив.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽