React-redux диспетчер не подключен - PullRequest
0 голосов
/ 04 января 2019

У меня есть компонент, которому нужно вызвать диспетчер действий, но когда я запускаю его, я получаю ошибку «undefined is not function».

Я использую реагирующий-редукс, редукс-персист и редукс-санк.

Все мои другие действия при вызове работают отлично.

UserActions.js

export const updateProfile = (user, token) => {
  return async dispatch => {
    try {
      axios()
        .then(response => {
          getUpdateProfileSuccess(response.data, dispatch);
        })
        .catch(error => {
          getUpdateProfileError(error.response, dispatch);
        });
    } catch (error) {
      getUpdateProfileError(error.response, dispatch);
    }
  };
};

const getUpdateProfileSuccess = (data, dispatch) => {
  dispatch({
    type: UPDATE_PROFILE_SUCCESS,
    data
  });
};

const getUpdateProfileError = (error, dispatch) => {
  dispatch({
    type: UPDATE_PROFILE_ERROR,
    error
  });
};

Мой компонент.js

import...
import { updateProfile } from "../../../../Actions/UserActions";

class CardInfo extends Component {
  _handleUpdateProfile = () => {
    let user = {...};
    this.props.updateProfile(user, this.props.token);
  }
  render() {
    return (...)
  }
}

const mapStateToProps = state => ({
  token: state.UserReducer.token,
  user_data: state.UserReducer.user_data
});

export default connect(
  mapStateToProps,
  { updateProfile }
)(CardInfo);

Когда я отлаживаю код, я получаю эту ошибку:

сообщение: «updateProfile не определен»

stack: "ReferenceError: updateProfile не определен at eval (eval at CardInfo._this._handleUpdateProfile (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:151091:21), : 1: 1) at Object.CardInfo._this._handleUpdateProfile [as onPress] (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:151091:21) at Object.Basic._this._handlePress [as onPress] (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:124999:21) at Object.touchableHandlePress (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:46460:40) at Object._performSideEffectsForTransition (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:45131:16) at Object._receiveSignal (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:45060:14) at Object.touchableHandleResponderRelease (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:44939:12) at Object.invokeGuardedCallbackImpl (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:7899:16) at invokeGuardedCallback (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:7990:37) at invokeGuardedCallbackAndCatchFirstError (blob: http://localhost:8081/41e77cd1-d0ff-413b-a32f-dfca9ee6061e:7994:31)"

1 Ответ

0 голосов
/ 04 января 2019

AFAIK, вы должны добавить props в качестве аргумента в конструктор.

class CardInfo extends Component {
  constructor(props) {
    super(props);
  }
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...