本文整理匯總了TypeScript中redux-thunk.withExtraArgument函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript withExtraArgument函數的具體用法?TypeScript withExtraArgument怎麽用?TypeScript withExtraArgument使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了withExtraArgument函數的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: configureStore
function configureStore(modules: Array<IModule<any>>, api: Api): Store<Object> {
const extraArguments: IExtraArguments = { api };
const middlewares: Middleware[] = [
thunk.withExtraArgument(extraArguments),
];
const modulesReducers: ReducersMapObject = modules.reduce((reducers, module) => {
if (module.getReducer) {
const reducerData = module.getReducer();
reducers[reducerData.name] = reducerData.reducer;
}
return reducers;
}, {} as ReducersMapObject);
const reducer: Reducer<IReduxState> = combineReducers<IReduxState>({
createPoll: createPollReducer,
viewPolls: viewPollsReducer,
...modulesReducers,
});
return createStore(
reducer,
compose(
applyMiddleware(...middlewares),
('development' === process.env.NODE_ENV && window.devToolsExtension)
? window.devToolsExtension() : ((arg: any) => arg),
),
);
}
示例2: function
export default function(
media: Media,
actionEmitter: Emitter,
customMiddlewares: Middleware[] = [],
stateOverrides: DeepPartial<AppState> | undefined,
extras: Extras
) {
let initialState;
if (stateOverrides) {
initialState = merge(
reducer(undefined, { type: "@@init" }),
stateOverrides
);
}
const emitterMiddleware = () => (next: Dispatch) => (action: Action) => {
actionEmitter.trigger(action.type, action);
return next(action);
};
const enhancer = compose(
applyMiddleware(
...[
thunk.withExtraArgument(extras),
mediaMiddleware(media),
emitterMiddleware,
...customMiddlewares,
].filter(Boolean)
)
);
// The Redux types are a bit confused, and don't realize that passing an
// undefined initialState is allowed.
const store = initialState
? createStore(reducer, initialState, enhancer)
: createStore(reducer, enhancer);
return store;
}
示例3: default
export default (
axiosInstance: AxiosInstance,
initialState: AppState = defaultInitialState,
composeEnhancers = compose,
) => {
const applyComposeEnhancers =
(typeof window !== 'undefined' &&
(window as AppWindow).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) ||
composeEnhancers;
const store = createStore(
reducers,
initialState,
applyComposeEnhancers(
applyMiddleware(
thunk.withExtraArgument(axiosInstance),
LogRocket.reduxMiddleware(),
),
),
);
return store;
};
示例4: createStore
import { RouteState } from './reducers/route';
import { SpinnerState } from './reducers/spinner';
import { AuthState } from './reducers/auth';
import { LoginState } from './reducers/login';
import { FeedsFeedsState } from './reducers/feeds';
import { ArticlesState } from './reducers/articles';
import { SearchState } from './reducers/search';
import { UrlsState } from './reducers/urls';
export type FeedsState = {
invalid: InvalidFeedsState,
route: RouteState,
spinner: SpinnerState,
auth: AuthState,
login: LoginState,
feeds: FeedsFeedsState,
articles: ArticlesState,
search: SearchState,
urls: UrlsState
};
// tslint:disable-next-line:no-any
const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
/**
* State store for the Feeds application.
* The API interface is passed as a separate
* argument for thunk-based actions.
*/
export default createStore(reducers, composeEnhancers(applyMiddleware(thunk.withExtraArgument(api))));
示例5: createStore
import { applyMiddleware, createStore } from "redux";
import { composeWithDevTools } from "redux-devtools-extension";
import thunk from "redux-thunk";
import { auth, firestore } from "../lib/firebase";
import { rootReducer } from "./reducers";
export const store = createStore(
rootReducer,
composeWithDevTools(
applyMiddleware(thunk.withExtraArgument({ auth, firestore }))
)
);
示例6: compose
export let store = Redux.createStore<IState>(
rootReducer,
{
// Pre-populate stored session data
session: initialSessionState
} as IState,
compose(
Redux.applyMiddleware(
routerMiddleware(browserHistory as any),
loadingBarMiddleware({
promiseTypeSuffixes: [pending(""), success(""), failed("")]
}),
promiseMiddleware as any,
thunkMiddleware.withExtraArgument({
getCachedClient: getCachedClient,
createClientWithToken: createClientWithToken,
getSignalRClient: getSignalRClient
} as IAsyncActionDependencies),
(createLogger as any)())));
// Persist session settings to session storage
store.subscribe(debounce(() => {
const state = store.getState();
const sessionState = state && state.session;
if (sessionState) {
sessionStorage.setItem("impera", JSON.stringify(sessionState));
}
}, 1000));
// Setup handler for 401 resposes
示例7: getStore
function getStore() {
const extras = {};
const enhancer = applyMiddleware(thunk.withExtraArgument(extras));
return createStore(reducer, enhancer);
}
示例8: default
/**
* Helper function to create mock store for testing actions.
*/
// tslint:disable-next-line: no-any
export default (initialState: any): FeedsMockStore => {
const middlewares = [thunk.withExtraArgument(mockApi)];
const mockStore = configureStore(middlewares);
return mockStore(initialState) as FeedsMockStore;
};