当前位置: 首页>>代码示例>>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;未经允许,请勿转载。