@ngrx/store-devtools:instrumentStore()返回一个对象数组而不是提供程序

3
我正在使用这个种子(angular2-webpack-starter)开发一个Angular 2项目,同时我也在使用@ngrx/store和@ngrx/store-devtools。但是,在引导过程中,应用程序抛出了以下错误: zone.js:260 - Uncaught Invalid provider - only instances of Provider and Type are allowed, got: [object Object] 以下是我如何使用该种子设置@ngrx的方法:

将包添加到vendor.browser.ts

// ngrx
import '@ngrx/core';
import '@ngrx/store';
import 'ngrx-store-router';

if ('production' === ENV) {
  // Production


} else {
  // Development
  require('angular2-hmr');
  require('@ngrx/store-devtools');
  require('@ngrx/store-log-monitor');

}

为 angular 2 添加提供商 (browser-providers.ts)

// @ngrx/store
import { provideStore } from '@ngrx/store';
// @ngrx/devtools
import { instrumentStore } from '@ngrx/store-devtools';
import { useLogMonitor } from '@ngrx/store-log-monitor';
// link angular's router with ngrx/sotre
import { routerMiddleware } from 'ngrx-store-router';
// custom data for ngrx
import { REDUCERS, initialState } from '../app/shared/redux';

export const APPLICATION_PROVIDERS = [
  // awesome redux implementation for angular
  provideStore(REDUCERS, initialState),
  instrumentStore({
    monitor: useLogMonitor({
      visible: true,
      position: 'right'
    })
  }),

  // link angular's router with ngrx/sotre
  routerMiddleware,

  //...
];

将监视器添加到我的应用模板中

简单。

但是当我使用console.log输出instrumentStore()的返回值时,我得到了一个对象数组。但是Angular需要一个Provider数组。

这里是我的软件包版本:

  • Angular2: rc3
  • @ngrx/core: 1.0.1
  • @ngrx/store: 1.5.0
  • @ngrx/store-devtools: 2.0.0-beta1
  • @ngrx/store-log-monitor: 2.0.0-beta1

如果有问题,我会在Github上报告。但我不确定是否设置了一切都正确。

谢谢。

1个回答

1
问题很简单。我已经将@ngrx/store升级到2.0.1版本,它可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接