加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Ngrx angular 2我应该如何设置初始状态?

发布时间:2020-12-17 17:46:49 所属栏目:安全 来源:网络整理
导读:我正在使用角度2和Ngrx. 我有主要组件应用程序,我在NgOnInit函数中订阅应用程序标题 我有子组件Home,我也在NgOnInit调度这个标题因为我想在用户访问home组件时更改标题. 问题是我的App组件是Home组件的父组件,它首先被调用,所以在我的订阅中我最终得到了应该
我正在使用角度2和Ngrx.

我有主要组件应用程序,我在NgOnInit函数中订阅应用程序标题
我有子组件Home,我也在NgOnInit调度这个标题因为我想在用户访问home组件时更改标题.

问题是我的App组件是Home组件的父组件,它首先被调用,所以在我的订阅中我最终得到了应该包含title的未定义对象.

什么是最好的解决方案?
我可以在构造函数中设置初始标题(首先调用它)
我可以在订阅中获得这样的标题:( store || {}).title
或者是否可以在reducer中设置初始状态?

解决方法

最终,如果值只是在模板中输出,您可以始终使用异步管道:

<h1>{{ (someReducer | async)?.title }}</h1>

或者,您可以在reducer本身内设置一些初始状态:

function someReducer (state = {title: 'Home'},action) {
    switch (action.type) {
        default: 
            return state;
    }
}

最后,您可以在初始化商店时设置初始状态:

StoreModule.provideStore(reducers,initialState)

希望这会以某种方式帮助你.

汤姆

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读