ローカル サーバーが稼働している場合にのみ、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);
}
スクリプトは、サーバーが稼働しているか停止しているかがわかるまで、エクスポートを待機する必要があります。これを達成する方法を教えてください。