Я использую как redux-promise-middleware
и redux-thunk
так:СЦЕПЛЕНИЕ обещает с стуком и Promise промежуточного
import { applyMiddleware, compose, createStore } from 'redux'
import thunk from 'redux-thunk';
import promise from 'redux-promise-middleware'
import logger from 'redux-logger'
import reducer from './reducers'
const middleware = applyMiddleware(thunk, promise(), logger({diff: true}));
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const enhancer = composeEnhancers(middleware);
export default createStore(
reducer,
enhancer)
Итак, что я хотел бы сделать, это цепь пара обещает вместе. Документация redux-promise-middleware
рекомендует использовать Promise.all
так:
export function startTest(test) {
return dispatch => {
return dispatch({
type: START_TEST,
id: test,
payload: Promise.all([
dispatch(axios.post(urlJoin(config.portalUrl, 'account/login')))
])
})
};
}
Однако, когда я отправлять это в магазин, я получаю следующее сообщение об ошибке:
Error: Actions must be plain objects. Use custom middleware for async actions.
Что я настроить так?
Почему вы называете 'Promise.all' в массиве с одним значением? – Bergi
@ Bergi это потому, что я буду выполнять больше в будущем, когда я их свяжу; Мне просто нужно было заставить эту архитектуру работать. Я надеюсь, что в этом есть смысл. –