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

时间:2016-07-04 09:43:52

标签: typescript angular webpack ngrx

我正在使用这个种子开发一个Angular 2项目:angular2-webpack-starter我也在使用@ 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,

  //...
];

将显示器添加到我的应用模板

<ngrx-store-log-monitor toggleCommand="ctrl-h" positionCommand="ctrl-m"></ngrx-store-log-monitor>

简单。

但当console.log instrumentStore()返回时,我得到一个对象数组。但Angular需要和提供者阵列。

以下是我的软件包的版本:

  • 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 个答案:

答案 0 :(得分:1)

问题很简单。 我已将@ngrx/store升级到版本2(2.0.1)并且可以正常运行。