Как соединить maptatetoprops и mapdispathctoprops в React и Redux - PullRequest
1 голос
/ 29 апреля 2019

При выполнении кода ниже я получаю сообщение об ошибке.

TypeError: _this.props.signInUser is not a function

Код:

import {signInUser} from '../actions/authAction'

const mapStateToProps = (state) => ({
 auth: state.auth,
 errors: state.errors
});

const mapDispatchToProps = (dispatch) => ({
 hideModal: modelType => dispatch(hideModal())
});

export default connect(
 mapStateToProps,
 mapDispatchToProps,
 null,
 {signInUser}
 )(LoginModal);

Любая помощь очень ценится.

1 Ответ

2 голосов
/ 29 апреля 2019

Вы неправильно передаете параметры в функцию connect.Четвертый параметр для подключения - options, который принимает следующие значения внутри объекта

{
  context?: Object,
  pure?: boolean,
  areStatesEqual?: Function,
  areOwnPropsEqual?: Function,
  areStatePropsEqual?: Function,
  areMergedPropsEqual?: Function,
  forwardRef?: boolean,
}

, и signInUser не является одним из них.Я полагаю, вы хотите передать его mapDisptachToProps

import {signInUser} from '../actions/authAction'

const mapStateToProps = (state) => ({
 auth: state.auth,
 errors: state.errors
});

const mapDispatchToProps = (dispatch) => ({
 hideModal: modelType => dispatch(hideModal()),
 signInUser: (...args) => dispatch(signInUser(...args));
});

export default connect(
 mapStateToProps,
 mapDispatchToProps,
)(LoginModal);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...