Как я могу исправить «неперехваченную ошибку типа: отправка не является функцией»?

#ruby-on-rails #reactjs #redux

#ruby-on-rails #reactjs #сокращение

Вопрос:

Я сталкиваюсь с этой ошибкой: «Неперехваченная ошибка типа: отправка не является функцией» при попытке выполнить действие отправки в окне.

Я дважды проверил синтаксис.

 Uncaught TypeError: dispatch is not a function
    at Object.eval (spot_actions.js?27ea:12)
    at Object.<anonymous> (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:3412)
    at fire (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:3233)
    at Object.fireWith [as resolveWith] (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:3363)
    at done (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:9841)
    at XMLHttpRequest.callback (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:10312)
  
 export const fetchAllSpots = () => dispatch => (
    APIUtil.fetchAllSpots().then(spots => 
    dispatch(receiveAllSpots(spots)))
);

const receiveAllSpots = payload => ({
    type: RECEIVE_ALL_SPOTS,
    payload
});
  
 window.fetchAllSpots = fetchAllSpots();
  

Комментарии:

1. Вот функция вызова утилиты: экспортировать const fetchAllSpots = () => ( $.ajax({ метод: ‘GET’, url: ‘/api /spots’, }) );

2. вы не определили отправку как функцию

3. не могли бы вы подробнее остановиться на этом? Спасибо!

4. подключали ли вы redux-thunk в качестве промежуточного программного обеспечения к вашему хранилищу redux?

Ответ №1:

Вы добавляете dispatch к подключению к маршрутизатору? Что-то вроде :

 export default connect(mapStateToProps, dispatch => ({
  dispatch, ComponentNameHere})) (ComponentNameHere)
  

Ответ №2:

обязательно установите redux-thunk в качестве промежуточного программного обеспечения и примените его к store