首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角分量不反映NGRX存储状态。

角分量不反映NGRX存储状态。
EN

Stack Overflow用户
提问于 2020-12-01 19:36:26
回答 1查看 358关注 0票数 0

我正在玩角和ngrx,并遵循几个不同的教程,以获得一些ngrx商店开始。我用的是ngrx-10和角-11。设置非常小。

app/store/action.ts

代码语言:javascript
复制
export const toggleSideNav = createAction('[SideNav Component] Toggle', props<{showSideNav?: boolean}>());

app/商店/还原机

代码语言:javascript
复制
export interface AppState {
    showSideNav: boolean
}

export const initialState: AppState = {
    showSideNav: true
};

const _appReducer = createReducer(
    initialState,
    on(toggleSideNav, (state: AppState, {showSideNav}) => ({...state, showSideNav: showSideNav ?? !state.showSideNav }))
);

export function AppReducer(state: AppState = initialState, action: Action) {
    return _appReducer(state, action);
}

app.module.ts

代码语言:javascript
复制
...
StoreModule.forRoot({appStore : AppReducer}, {})
...

/visitors(submodule)/components/home.component.ts

代码语言:javascript
复制
@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss']
})

export class HomeComponent implements OnInit {

  showSideNav$: Observable<boolean>;

  constructor(private store: Store<AppState>) { 
    this.showSideNav$ = store.pipe(select(x => x.showSideNav))
  }

  ngOnInit(): void {
  }

  toggleSideNav(): void {
    this.store.dispatch(toggleSideNav({}));
  }
}

最后,/访问者/components/home.component.html.Component.html

代码语言:javascript
复制
<div *ngIf="showSideNav$ | async">
    it works
</div>
<button (click)="toggleSideNav()">
    Toggle
</button>

我正在使用ngrx,我可以看到"showSideNav“工作的切换。它在正确和错误之间失败,但文本从未显示出来。就好像showSideNav$总是没有定义一样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-01 19:49:34

选择器返回undefined。我想您的选择器函数应该如下所示:

代码语言:javascript
复制
select(x => x.appStore.showSideNav)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65097333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档