Задать вопрос
@maxduma16

Почему не могу перебрать массив через map. TypeError: test.map is not a function?

Я получаю данные из firebase через axios и хочу их отрендерить

Данные приходят в функцию рендер в виде массива объектов
Вот я вывел их в консоль:
6081779bc6bcc105101938.png

После переборки выбивает ошибку TypeError: test.map is not a function

render() {  
        const test = this.props.users;
        console.log('test', test);

        return (
            <div>
                 {
                    test.map(u => { 
                    return <div key={u.id}>
                             <div>{u.fullName}</div>
                           </div>
                        })
                }
            </div>
        )
    }


6081784a389df180557999.png

Если те же данные вывести из компонента, все работает
render() {
        const dataFromComponent = [  
                {id: 1, fullName: 'Max' },
                {id: 2,  fullName: 'Jordan' },
                {id: 3,  fullName: 'Gary' },
                {id: 4,  fullName: 'Oleg' } 
                ]

        return (
            <div>
                 {
                    dataFromComponent.map(u => { 
                    return <div key={u.id}>
                             <div>{u.fullName}</div>
                           </div>
                        })
                }
            </div>
        )
    }


При выводе:
if (!test.map ) {
            console.log("props", {...this.props})
        }

в консоль падает:
6081a41fa91e6355168392.png
  • Вопрос задан
  • 2861 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ты уверен что на каком то этапе жизненного цикла у тебя test не undefined?
https://reactjs.org/docs/state-and-lifecycle.html
https://reactjs.org/docs/conditional-rendering.html
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы