當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript redux.reducerFactory函數代碼示例

本文整理匯總了TypeScript中app/core/redux.reducerFactory函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript reducerFactory函數的具體用法?TypeScript reducerFactory怎麽用?TypeScript reducerFactory使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了reducerFactory函數的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: makeExploreItemState

  queryKeys: [],
});

/**
 * Global Explore state that handles multiple Explore areas and the split state
 */
export const initialExploreState: ExploreState = {
  split: null,
  left: makeExploreItemState(),
  right: makeExploreItemState(),
};

/**
 * Reducer for an Explore area, to be used by the global Explore reducer.
 */
export const itemReducer = reducerFactory<ExploreItemState>({} as ExploreItemState)
  .addMapper({
    filter: addQueryRowAction,
    mapper: (state, action): ExploreItemState => {
      const { queries, queryTransactions } = state;
      const { index, query } = action.payload;

      // Add to queries, which will cause a new row to be rendered
      const nextQueries = [...queries.slice(0, index + 1), { ...query }, ...queries.slice(index + 1)];

      // Ongoing transactions need to update their row indices
      const nextQueryTransactions = queryTransactions.map(qt => {
        if (qt.rowIndex > index) {
          return {
            ...qt,
            rowIndex: qt.rowIndex + 1,
開發者ID:CorpGlory,項目名稱:grafana,代碼行數:31,代碼來源:reducers.ts

示例2: reducerFactory

import { reducerFactory, actionCreatorFactory } from 'app/core/redux';
import { reducerTester } from './reducerTester';

interface DummyState {
  data: string[];
}

const initialState: DummyState = {
  data: [],
};

const dummyAction = actionCreatorFactory<string>('dummyAction').create();

const mutatingReducer = reducerFactory(initialState)
  .addMapper({
    filter: dummyAction,
    mapper: (state, action) => {
      state.data.push(action.payload);
      return state;
    },
  })
  .create();

const okReducer = reducerFactory(initialState)
  .addMapper({
    filter: dummyAction,
    mapper: (state, action) => {
      return {
        ...state,
        data: state.data.concat(action.payload),
      };
開發者ID:CorpGlory,項目名稱:grafana,代碼行數:31,代碼來源:reducerTester.test.ts

示例3: reducerFactory

import { reducerFactory } from 'app/core/redux';

export const initialState: DataSourcesState = {
  dataSources: [],
  dataSource: {} as DataSourceSettings,
  layoutMode: LayoutModes.List,
  searchQuery: '',
  dataSourcesCount: 0,
  dataSourceTypes: [],
  dataSourceTypeSearchQuery: '',
  hasFetched: false,
  isLoadingDataSources: false,
  dataSourceMeta: {} as Plugin,
};

export const dataSourcesReducer = reducerFactory(initialState)
  .addMapper({
    filter: dataSourcesLoaded,
    mapper: (state, action) => ({
      ...state,
      hasFetched: true,
      dataSources: action.payload,
      dataSourcesCount: action.payload.length,
    }),
  })
  .addMapper({
    filter: dataSourceLoaded,
    mapper: (state, action) => ({ ...state, dataSource: action.payload }),
  })
  .addMapper({
    filter: setDataSourcesSearchQuery,
開發者ID:CorpGlory,項目名稱:grafana,代碼行數:31,代碼來源:reducers.ts

示例4: renderUrl

import { LocationState } from 'app/types';
import { renderUrl } from 'app/core/utils/url';
import _ from 'lodash';
import { reducerFactory } from 'app/core/redux';
import { updateLocation } from 'app/core/actions';

export const initialState: LocationState = {
  url: '',
  path: '',
  query: {},
  routeParams: {},
  replace: false,
  lastUpdated: 0,
};

export const locationReducer = reducerFactory<LocationState>(initialState)
  .addMapper({
    filter: updateLocation,
    mapper: (state, action): LocationState => {
      const { path, routeParams, replace } = action.payload;
      let query = action.payload.query || state.query;

      if (action.payload.partial) {
        query = _.defaults(query, state.query);
        query = _.omitBy(query, _.isNull);
      }

      return {
        url: renderUrl(path || state.path, query),
        path: path || state.path,
        query: { ...query },
開發者ID:grafana,項目名稱:grafana,代碼行數:31,代碼來源:location.ts

示例5: reducerFactory

  dashboardInitFailed,
  dashboardInitCompleted,
  cleanUpDashboard,
} from './actions';
import { reducerFactory } from 'app/core/redux';
import { processAclItems } from 'app/core/utils/acl';
import { DashboardModel } from './DashboardModel';

export const initialState: DashboardState = {
  initPhase: DashboardInitPhase.NotStarted,
  isInitSlow: false,
  model: null,
  permissions: [],
};

export const dashboardReducer = reducerFactory(initialState)
  .addMapper({
    filter: loadDashboardPermissions,
    mapper: (state, action) => ({
      ...state,
      permissions: processAclItems(action.payload),
    }),
  })
  .addMapper({
    filter: dashboardInitFetching,
    mapper: state => ({
      ...state,
      initPhase: DashboardInitPhase.Fetching,
    }),
  })
  .addMapper({
開發者ID:CorpGlory,項目名稱:grafana,代碼行數:31,代碼來源:reducers.ts


注:本文中的app/core/redux.reducerFactory函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。