React / Redux: почему мое действие не вызывается в ComponentDidMount ()? - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь получить метод для загрузки при загрузке страницы, и я нашел лучший способ сделать это с помощью ComponentDidMount ().Я не могу заставить его запустить мой метод.Я знаю, что CompoentDidMount () работает, потому что я смог войти в него.

Вот мой ComponentDidMount ():

componentDidMount() {
   this.props.getStus()
}

А вот мой mapToDispatch и Connect:

const mapDispatchToProps = dispatch => {
  return{
    getStus: () => dispatch(auth.getStus),
  }
}

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

Вот мой код действия:

export const getStus = () => {
    return (dispatch, getState) => {
        console.log("In getStus");
        let headers = {"Content-Type": "application/json"};
        return fetch(`${url}/api/stu/list/`, {headers, body: "", method: "GET"})
            .then(res => {
                if (res.status < 500) {
                    return res.json().then(data => {
                        return {status: res.status, data};
                    })
                } else {
                    throw res;
                }
            })
            .then(res => {
                if (res.status === 200) {
                    dispatch({type: 'GET_STUS_SUCCESSFUL'});
                    return res.data;
                } else if (res.status === 403 || res.status === 401) {
                    dispatch({type: "AUTHENTICATION_ERROR", data: res.data});
                    throw res.data;
                }
            })
    }
}

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

1 Ответ

0 голосов
/ 07 декабря 2018

изменить это:

const mapDispatchToProps = dispatch => {
 return{
    getStus: () => dispatch(auth.getStus),
   }
}

на

const mapDispatchToProps = dispatch => {
  return{
    getStus: () => dispatch(auth.getStus()),
   }
}
...