Задать вопрос
@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 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Запрос данных асинхронен, так что рендеринг с lists равным null будет выполнен в любом случае. И вот там, где вы пытаетесь lists перебирать, проверяйте, что он не null - тогда вызывать map можно. Или устанавливайте в качестве дефолтного значения вместо null пустой массив.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽