Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/64: Рейтинг темы: голосов - 64, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 38

Cannot read properties of undefined (reading 'map')

16.09.2021, 00:00. Показов 13766. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна ваша помощь. Пробую собирать данные API с помощью redux. Когда хочу отрисовывать данные то получаю эту ошибку:
Code
1
Cannot read properties of undefined (reading 'map')
Что я делаю не так? Спасибо большое вам. Вот мой код


Cartoons.js

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import {useDispatch, useSelector} from "react-redux";
import {cartoons_are_loaded} from "../redux/action_creators";
 
export let Cartoons = () => {
 
    let dispatch = useDispatch();
    let cartoons = useSelector(({cartoon_reducer: {cartoons}}) => cartoons);
 
    let fetchCartoons = async () => {
        try {
            let response = await fetch('https://api.sampleapis.com/cartoons/cartoons2D');
            let json = await response.json();
            console.log(json);
            dispatch(cartoons_are_loaded(json.data))
        } catch (e) {
            console.log(e)
        }
    }
 
    useEffect(() => {
       fetchCartoons();
    },[])
 
    return (<div>
        {cartoons.map(el => <div key={el.id}>{el.title}</div>)}
            </div>)
}
reducers.js

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import {CARTOONS_ARE_LOADED} from "./action_types";
 
let initialState = {
    cartoons: []
}
 
let cartoon_reducer = (state = initialState, action) => {
    switch (action.type) {
        case CARTOONS_ARE_LOADED: {
            return {
                ...state,
                cartoons: action.payload
            }
        }
 
        default:
            return state;
    }
}
 
export default cartoon_reducer;
action_types.js

JavaScript
1
2
3
4
5
6
7
8
9
let CARTOONS_ARE_LOADED = 'CARTOONS_ARE_LOADED';
let ADD_FAVOURITE_CARTOON = 'ADD_FAVOURITE_MOVIE';
let DELETE_FAVOURITE_MOVIE = 'DELETE_FAVOURITE_MOVIE';
 
export {
    CARTOONS_ARE_LOADED,
    ADD_FAVOURITE_CARTOON,
    DELETE_FAVOURITE_MOVIE
}
action_creators.js

JavaScript
1
2
3
4
5
6
7
8
9
10
11
import {
    CARTOONS_ARE_LOADED,
    ADD_FAVOURITE_CARTOON,
    DELETE_FAVOURITE_MOVIE
} from "./action_types";
 
let cartoons_are_loaded = (payload) => ({type : CARTOONS_ARE_LOADED, payload});
 
export {
    cartoons_are_loaded
}
all_reducers.js

JavaScript
1
2
3
4
5
6
import cartoon_reducer from "./reducers";
import {combineReducers} from "redux";
 
export let root_reducer = combineReducers({
    cartoon_reducer
})
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2021, 00:00
Ответы с готовыми решениями:

TypeError: Cannot read property 'map' of undefined
import React from 'react'; import TodoListItem from './todo-list-item'; const TodoList = ({todos}) =&gt; { const elements...

Error reading ****.Bitmap: Failed to read ImageList data from stream
Здравствуйте. Сразу скажу, я не программист, но нужен опытный взгляд программистов delphi) В нашей организации используется...

Error #1010: A term is undefined and has no properties
Для реализации таблицы рекордов, была придумана такая функция: var mArr:Array = ,,,,]; function regularize(arr:Array):Array{ var...

5
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
16.09.2021, 09:30
Frankenstar, скорее всего cartoons у тебя еще нет, а ты уже итерируешь его.
Я бы создал еще один компонет в таком случае, где будет подгружаться данные, ставить loading=true, после загрузки данных loading=false, и только потом отрисовывать компонент
0
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 38
16.09.2021, 09:57  [ТС]
MaksimkaI, Но в консоль я получаю данные, или я не правильно понимаю?
0
 Аватар для Ovederax
604 / 404 / 212
Регистрация: 30.04.2017
Сообщений: 744
Записей в блоге: 1
16.09.2021, 15:10
что видно в консоли? json строка?
Цитата Сообщение от Frankenstar Посмотреть сообщение
dispatch(cartoons_are_loaded(json.data))
мб у json нет data параметра
1
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 38
16.09.2021, 15:15  [ТС]
Ovederax, Спасибо большое) У меня есть вопрос один. У меня еще есть таких 9 компонентов. Я пытаюсь отрисовывать 9-ю компоненту, ошибок у меня нет в консоль данные приходят, но они просто не видмальовуються. Вопрос, есть ли какое-то ограничение при выполнении запроса API? Спасибо)
0
 Аватар для Ovederax
604 / 404 / 212
Регистрация: 30.04.2017
Сообщений: 744
Записей в блоге: 1
17.09.2021, 09:49
Цитата Сообщение от Frankenstar Посмотреть сообщение
Вопрос, есть ли какое-то ограничение при выполнении запроса API?
Цитата Сообщение от Frankenstar Посмотреть сообщение
в консоль данные приходят
можно держать много запросов к api
ошибка где-то в сохранении либо подписке на эти изменения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2021, 09:49
Помогаю со студенческими работами здесь

Cannot read property 'then' of undefined
Коллеги, доброго времеи суток! Помогите пожалуйста разобраться с проблемой. Есть такой вот HTML код &lt;div id=&quot;wrapper&quot;...

Cannot read property 'db' of undefined
Привет! мне нужно написать чат с сохранение сообщений, библиотеки все подключены, но почему-то выводит (node:23040)...

Cannot read property 'left' of undefined
потребовалась на сайт меню с бегающей линией при наведении, нашел тут http://jsfiddle.net/oceog/bjKEJ/5/ переделал под себя, все...

Cannot read property 'top' of undefined
window.addEventListener('scroll', function () { window.requestAnimationFrame(function () { var docViewTop =...

Cannot read property 'textContent' of undefined
Якобы переменная не определена, хотя она определена. Не понимаю в чём проблема... var n=0; while(true){ var comment =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru