3
我正在开发一个Angular 2.0和NGRX的应用程序。我来自React/Redux,所以我仍然在想办法做些什么。如何用NGRX改变状态后执行一些代码?
当我要打印模板里面的东西我能写这样的事:
@Component({
selector: 'dashboard',
directives: [MainContainer],
styleUrls: [
'./dashboard.style.css'
],
template: `
<main-container [section]="viewSection | async"></main-container>
`
})
export class Dashboard {
private viewSection: Observable<MainViewSection>;
constructor(
private store: Store<AppState>
) {
this.viewSection = this.store.let(getMainViewSection());
}
}
但现在我想一个值发生变化后执行一些代码(它会使用店内的值作为输入(即将改变后视图)
我知道我可以在阵营componentWillReceiveProps
做
我发现的唯一的事情,可以是有用的是这样的:
export class View {
constructor(
private store: Store<AppState>
) {
this.store.select('data').subscribe((val: DataState) => {
if (!layer) {
return;
}
layer.setData(val);
});
}
}
我不认为这是一种优雅的方式,但我无法找到另一种方式..人们告诉我使用服务(我不知道这是如何适合这种情况),我读过约@Effects
,但我不知道这是我在找什么。
谢谢!
我想过这个问题,但我怎么能触发对象的方法,一个组件内的? 我有一个地图图层,我必须更改一些参数并调用方法。我应该将图层存储在状态中并通过效果改变它吗? –
是的,我认为是。如果你想在状态改变时调用组件中的方法,那么它不应该是一个组件方法,而应该是一个状态动作。 –