我正在使用这个种子开发一个 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 需要和提供者的数组。
这是我的软件包的版本:
- 角2:rc3
- @ngrx/核心:1.0.1
- @ngrx/商店:1.5.0
- @ngrx/store-devtools:2.0.0-beta1
- @ngrx/store-log-monitor:2.0.0-beta1
如果有问题,我会在 Github 上报告。但我不确定是否正确设置了所有内容。
谢谢。