#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