条件加载 redux dev服务器



我想仅在本地服务器启动时才将redux devTools添加到存储中。因为这是一个异步操作,所以我最终得到了一个"不完整"的存储。

检查服务器是否存在的异步函数:

export async function isReduxDevServerAlive(url,port, secure = false) {
const server = secure ? 'https' : 'http' + `://${url}:${port}`;
try {
    let response = await fetch(server);
    return true;
} catch(error) {
    return false;
}

store.js脚本

import thunk from 'redux-thunk';
import devTools from 'remote-redux-devtools';
import { isReduxDevServerAlive } from './util/dev'
import { createStore, applyMiddleware, combineReducers, compose } from 'redux';
import * as reducers from './reducers';
import * as constants from './constants';
let composable = [ applyMiddleware(thunk) ];
const reducer = combineReducers(reducers);
if(isReduxDevServerAlive(constants.REDUX_DEV_SERVER, constants.REDUX_DEV_SERVER_PORT))
{
    composable.push(
        devTools({
            name: 'EPP app', realtime: true,
            hostname: constants.REDUX_DEV_SERVER, port: constants.REDUX_DEV_SERVER_PORT,
            maxAge: 30, filters: {blacklist: ['EFFECT_RESOLVED']}
        })
    );
}
const bconfigureStore = (c) => {
        return createStore(reducer,{},compose(...c));
}
export default function configureStore() {
    return bconfigureStore(composable);
}

脚本应等待导出,直到它知道服务器是启动还是关闭。你能帮我解决这个问题吗?

例如,您只需使configureStore函数异步并在回调中应用渲染,就像我们在这里所做的那样。

但是,您可以将realtime设置为 false 并有一个操作来启动监视,为startOn参数指定(显式调度或本地服务器为"up")。在这种情况下,您无需重新启动应用程序即可开始监视。唯一的缺点是redux-devtools-instrument仍然会存储历史记录,它不会显着影响性能,但如果状态中有大型对象,可能会消耗 RAM。我们可以在那里添加启动/停止检测的功能。

相关内容

  • 没有找到相关文章

最新更新