Использование магазина Redux в компоненте я учил сделать следующее:Нужно ли подписаться на магазин redux в Angular2?
ngOnInit(){
this.store.subscribe(() => {
this.counter = this.store.getState().counter;
});
}
Почему я не могу просто написать {{store.getState().counter}}
в моем шаблоне. Он работает отлично, даже лучше, потому что отображается начальное значение.
- Есть ли причина явно подписаться или сделать это угловой2 для вас за кулисами?
- Если мне нужно подписаться, как мне отобразить начальное значение?
@dannyjolie:
Спасибо за попытку объяснить, но ваше предположение не верно. В следующем фрагменте я изменил шаблон обратно из подписанных переменных класса в хранилище и продолжал работать. (См Github для всего проекта)
@Component({
selector: "todo-list",
directives: [Todo],
pipes: [VisibleTodosPipe],
template: `<div>
<ul>
<todo
*ngFor="#todo of store.getState().todos | visibleTodos: store.getState().filter"
[completed]="todo.completed"
[id]="todo.id"
>
{{todo.text}}
</todo>
</ul>
</div>`
})
export class TodoList {
constructor(
@Inject('AppStore')
public store: AppStore
){
this.unsubscribe = this.store.subscribe(() => {
let state = this.store.getState();
this.currentFilter = state.filter;
this.todos = state.todos;
});
}
private ngOnDestroy(){
this.unsubscribe(); //remove listener
}
}
Первого спасибо за прохождения через неприятность найти объяснение! – Guenther
Это действительно интересно! Я думаю, что мне нужно попробовать комбо Angular2/Redux, просто чтобы поэкспериментировать с ним. Когда вы говорите, что вас учат устанавливать 'this.counter' в обратном вызове' store.subscribe', каков ваш источник информации? И как выглядит ваш редуктор 'todos'? – dannyjolie
Вот [код] (https://github.com/z-bit/a2_redux_todo.git), и преподавание относится к [Gerard Sans] (https://medium.com/google-developer-experts/angular-2 -внедрение к Redux-1cf18af27e6e # .qrrhlqow3). Вы найдете редуктор в ** src/todo/todoActions.ts **. Мне кажется, что есть действительно два действительных способа получить данные. – Guenther