Я не могу определить точный способ одновременного использования devToolsExtension и промежуточного программного обеспечения в хранилище redux.
Ниже мой код для магазина redux.
import {createStore, combineReducers, applyMiddleware} from 'redux';
import thunk from 'redux-thunk';
import counterReducer from './../reducers/counterReducer';
const reducers = combineReducers({
counter: counterReducer
});
const store = createStore(
reducers,
{counter: {count:0} },
// window.devToolsExtension && window.devToolsExtension(),
applyMiddleware(thunk)
);
export default store;
Поскольку createStore () принимает 3 аргумента. Перед применением thunk промежуточного программного обеспечения я использовал его как приведенный ниже код, который мне подходит.
const store = createStore(
reducers,
{counter: {count:0} },
window.devToolsExtension && window.devToolsExtension()
);
Теперь мне нужно использовать devToolsExtension, а также одновременно применить промежуточное ПО.
Я попытался поместить devToolsExtension и applyMiddleware внутрь массива, чтобы они действовали как третий аргумент, но это не сработало.
const store = createStore(
reducers,
{counter: {count:0} },
[window.devToolsExtension && window.devToolsExtension(),
applyMiddleware(thunk)]
);
Теперь ситуация такова, что мне нужно либо использовать devToolsExtension в качестве третьего аргумента, либо applyMiddleware () в качестве третьего аргумента.
Но я хочу использовать оба одновременно. Как я могу этого добиться?
@konekoya привет, спасибо, я обязательно попробую это в своем следующем проекте.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


ты можешь сделать это так
import { createStore, applyMiddleware,compose } from 'redux';
import reducers from '../reducers';
import reduxThunk from 'redux-thunk';
import {signOut} from '../actions/signOut';
import {checkLoggedInState} from '../actions/signIn';
//For Dev Tools -todo =remove for production bundle
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
// const createStoreWithMiddleware=applyMiddleware()(createStore);
const store=createStore(reducers,composeEnhancers(
applyMiddleware(reduxThunk,signOut,checkLoggedInState)
));
export default store;
Это должно работать отлично -
import { createStore, applyMiddleware, compose } from 'redux';
import rootReducer from '../reducers/rootReducer';
import captureMiddleWare from '../captureMiddleWare';
const commonStore = createStore(rootReducer, compose(applyMiddleware(captureMiddleWare), window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()));
export default commonStore;
Redux devTools великолепен, но я не так часто им пользуюсь. Я бы порекомендовал вам использовать redux-logger, супер удобный и простой в настройке github.com/evgenyrodionov/redux-logger