Рендеринг карты редуксовых реквизитов не является функцией - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь отобразить избыточное состояние, отображая массив объектов, но получаю, что карта не является функцией. Я могу console.log мои реквизиты, чтобы увидеть, что он получает, но выглядит так, как будто он пытается отобразить через него, прежде чем реквизиты были переданы в компонент. Как вы можете видеть, я пытался также использовать метод &&, как предлагали другие, но все, что я получаю, это:

TypeError: myItems.map is not a function

Вот код, который у меня есть

import React, {Component} from 'react';
import { connect } from 'react-redux';

class RandomComponent extends Component {
    state = {
        myItems: this.props.myItems
    }

    componentDidUpdate(prevProps, prevState, snapshot) {
        console.log('Styles: ', this.props.myItems); // Returns object array 
    }

    render() {
        const {myItems} = this.props; // also tried this.state
        return (
            <ul>
               {myItems && myItems.map((item) => {
                    return <span>Hello.</span>
                })}
            </ul>
        );
    }
}

const mapStateToProps = state => ({
    myItems: state.getmyItems.myItems
});

export default connect(mapStateToProps)(RandomComponent);

Ответы [ 2 ]

1 голос
/ 29 октября 2019

Ваше initialState является объектом, установите его в пустой массив []. В вашем улове верните пустой массив, а не пустой объект. && не работает, потому что пустой объект "существует". Если вы все еще хотите использовать &&, тогда установите initialState на undefined

0 голосов
/ 29 октября 2019

map - это функция для массивов тип данных может быть объект . Чтобы перебрать объект , вы можете использовать for ... in

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...