javascript - 在 React-Redux Store 中配置 devToolsExtension 和 applyMiddleware()

标签 javascript reactjs redux react-redux redux-devtools-extension

我无法弄清楚在 redux 商店中同时使用 devToolsExtension 和中间件的确切方法。

下面是我的 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() 作为第三个参数。

但我想同时使用两者。
我怎样才能做到这一点?

最佳答案

你可以这样做

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;

关于javascript - 在 React-Redux Store 中配置 devToolsExtension 和 applyMiddleware(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737286/

相关文章:

javascript - 点击浏览器后重定向到不同的 URL - Reactjs

javascript - React.js如何避免某些组件的服务器渲染?

javascript - 如何导出 object.assign 并在同一文件的另一个函数中使用它的内容进行验证?

javascript - 如果一个数组的所有项目存在于另一个数组中,则将其删除

Javascript 对象数组 : Best way to return a value?

javascript - 反向地理编码 - Google map v3

javascript - Redux 中间件异步函数

javascript - 对数字数组进行排序

reactjs - React : Is this the correct way to create a custom hook? 防止 SWR 不必要的调用?

javascript - 如何在react redux表单中成功创建帖子后刷新列表