Я ищу способ отправить действие, если знаю, что отправлено несколько действий. Я знаю, что могу сделать это сейчас, сохранив некоторые переменные в магазине. Но есть ли лучший способ сделать это (Saga, Discoverables) и т. Д. Я попытался просмотреть их документацию, но не мог понять, можно ли ее использовать для этой цели.
Например, в приведенном ниже коде я хочу выполнить некоторые действия в промежуточном программном обеспечении, когда я знаю, что отправлены 2 требуемых действия.
import React, { Component } from 'react';
import ReactDOM from 'react-dom'
import {createStore, applyMiddleware} from 'redux'
import {Provider} from 'react-redux'
const dummyReducer = (state=null,action) => {
return state
}
const defaultAction1 = { type: 'DEFAULT_ACTION1'}
const requiredAction1 = { type: 'REQUIRED_ACTION1'}
const requiredAction2 = { type: 'REQUIRED_ACTION2'}
const middle = (store) => (next) => (action) => {
if(action.type === 'REQUIRED_ACTION1')
console.log('Required actions satisfied')
next(action)
}
const store = createStore(dummyReducer, applyMiddleware(middle))
store.dispatch(defaultAction1)
//Dispatch an action after 2 secs
setTimeout(store.dispatch.bind(null,requiredAction1),2000)
setTimeout(store.dispatch.bind(null,requiredAction2),4000)
class DummyComponent extends Component{
render(){
return(<h1> nothing to see here </h1>)
}
}
ReactDOM.render(<Provider store={store}>
<DummyComponent />
</Provider>,
document.getElementById('root')
);