Компонент не собирает изменения в магазине - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть компонент, который не может получить данные из моего магазина.

class UserList extends PureComponent {

    constructor(props) {
        super(props);
        this.state = ({
            users: []
        })
    }

    componentWillReceiveProps (newProps) {
        console.log("New Props", newProps);
        this.setState({
            users: newProps
        })
    }

    render() {
        return (
            <div>
                TEST
            </div>
        )
    }
}

const mapDispatchToProps = (dispatch) => {
    return bindActionCreators({ 'editUser': editUser, 'deleteUser': deleteUser }, dispatch);
}

const mapStateToProps = (state) => {
    console.log("State.users", state.users);
    return {
        users: state.users
    }
};

export default connect(mapDispatchToProps, mapStateToProps)(UserList);

У меня есть редуктор здесь:

let originalUsers = [...state.users];
console.log("originalUsers", originalUsers);
switch(action.type) {
    case "ADD_USER":
        originalUsers.push(action.payload);
        return {users: originalUsers};

Редуктор получает и возвращает правильныйданные, кроме строки в моем компоненте UserList внутри mapStateToProps;когда я регистрирую "stage.users", он продолжает показывать неопределенное значение, и я не понимаю, почему.

1 Ответ

0 голосов
/ 03 февраля 2019

Ваш

export default connect(mapDispatchToProps, mapStateToProps)(UserList);

Должен быть исправлен как

export default connect(mapStateToProps, mapDispatchToProps)(UserList);

mapStateToProps в качестве первого параметра в функции подключения.

...