Вызывается та же функция массива javascript и поведение отличается - PullRequest
0 голосов
/ 16 декабря 2018

Я пытался написать 2 действия для приложения React.

export const changeFilter = (newFilter) => {

return (dispatch) => {
    dispatch({type:types.GET_EVENTS_BY_FILTER});
    axios.get( 'http://localhost:8762/event/events?') // + eventsSelector.getEventsFilter()
        .then( response => {
            dispatch({type:types.GET_EVENTS_BY_FILTER_SUCCESS,payload:response});
        } )
        .catch( error => {
            dispatch({type:types.GET_EVENTS_BY_FILTER_FAIL,error:error});
        } );


  }
};

и

export const getEventsByFilter = () => {

return (dispatch) => {
    dispatch({type:types.GET_EVENTS_BY_FILTER});
    axios.get( 'http://localhost:8762/event/events?') // + eventsSelector.getEventsFilter()
        .then( response => {
            dispatch({type:types.GET_EVENTS_BY_FILTER_SUCCESS,payload:response});
        } )
        .catch( error => {
            dispatch({type:types.GET_EVENTS_BY_FILTER_FAIL,error:error});
        } );
    }
};

Когда я нажимаю на строке возврата (отправки) в getEventsByFilter и нажимаю F10 для отладки (вChrome Developer Tools), я перехожу к следующей строке (что является ожидаемым поведением).К сожалению, когда я пытаюсь вызвать метод changeFilter, нажать клавишу возврата (dispatch) и нажать клавишу F10, чтобы перейти к отладчику следующей строки, я получаю закрывающую скобку оператора возврата вместо следующей строки.Я также проверил журнал, потому что у меня установлен лог-редуктор и действия отправляются только для метода getEventsByFilter.

1 Ответ

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

Я назвал эти методы по-разному.Оба они были объявлены в файле eventActions, и у меня было это в компоненте, который вызывал следующие функции:

const mapDispatchToProps = dispatch => {
    return {
        getEvents: () => dispatch(eventActions.getEvents()),
        getEventsByFilter: () => dispatch(eventActions.getEventsByFilter()),
        changeFilter: (newFilter) => dispatch(eventActions.changeFilter(newFilter))
    }
};

Для getEventsByFilter я использовал this.props.getEventsByFilter();, а changeFilter назывался так eventActions.changeFilter({priceFrom:event.target.value});.Я пропустил dispatch для changeFilter метода.

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