【问题标题】:how to apply redux developer tools with reduxThunk如何使用 reduxThunk 应用 redux 开发者工具
【发布时间】:2018-10-27 09:02:07
【问题描述】:

这是我的代码

import React        from "react";
import ReactDOM     from "react-dom";
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import "normalize.css/normalize.css"
import  "./styles/styles.scss";
import { Router, Route, IndexRoute, browserHistory } from 'react-router';
import reduxThunk from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';

import AppRouter from './routers/AppRouter';
import reducers from './reducers';
import {AUTH_USER} from "./actions/types";

//
const createStoreWithMiddleware =  applyMiddleware(reduxThunk)(createStore);
const store = createStoreWithMiddleware(reducers);


const token = localStorage.getItem('token');
if(token){
    store.dispatch({type:AUTH_USER});
}

ReactDOM.render(
    <Provider store={store}>
        <AppRouter />
    </Provider>
    , document.getElementById('app'));

所以我想Use redux-devtools-extension package from npm

如何使用 createStoreWithMiddleware 实现

【问题讨论】:

    标签: redux redux-thunk redux-devtools redux-devtools-extension


    【解决方案1】:

    只需用composeWithDevTools包装中间件。就像第一次导入一样:

    import { composeWithDevTools } from 'redux-devtools-extension';
    

    将所有中间件添加到一个数组中。目前只有一个。

    const middleware = [
        reduxThunk,
    ];
    

    然后代替createStoreWithMiddleWare

    const store = createStore(reducers, composeWithDevTools(
      applyMiddleware(...middleware),
      // other store enhancers if any
    ));
    

    所以代码变成:

    import React        from "react";
    import ReactDOM     from "react-dom";
    import { Provider } from 'react-redux';
    import { createStore, applyMiddleware } from 'redux';
    import "normalize.css/normalize.css"
    import  "./styles/styles.scss";
    import { Router, Route, IndexRoute, browserHistory } from 'react-router';
    import reduxThunk from 'redux-thunk';
    import { composeWithDevTools } from 'redux-devtools-extension';
    
    import AppRouter from './routers/AppRouter';
    import reducers from './reducers';
    import {AUTH_USER} from "./actions/types";
    
    
    const middleware = [
        reduxThunk,
    ];
    
    const store = createStore(reducers, composeWithDevTools(
    applyMiddleware(...middleware),
    // other store enhancers if any
    ));
    
    
    const token = localStorage.getItem('token');
    if(token){
        store.dispatch({type:AUTH_USER});
    }
    
    ReactDOM.render(
        <Provider store={store}>
            <AppRouter />
        </Provider>
        , document.getElementById('app'));
    

    尚未测试,但应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 2014-01-16
      • 2016-01-05
      • 1970-01-01
      • 2011-11-25
      • 2022-09-29
      相关资源
      最近更新 更多