首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法从具有@ngrx/effects@4.1.1和@ngrx/store@4.1.1的angular 4中的观察值获取计数

在具有@ngrx/effects@4.1.1和@ngrx/store@4.1.1的Angular 4中,要从观察值中获取计数,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了@ngrx/effects和@ngrx/store这两个依赖包。可以通过运行以下命令来安装它们:
代码语言:txt
复制

npm install @ngrx/effects@4.1.1 @ngrx/store@4.1.1

代码语言:txt
复制
  1. 在你的应用程序中,创建一个名为counter的状态(state)。可以使用@ngrx/store来管理应用程序的状态。在这个状态中,定义一个名为count的属性来存储计数值。例如:
代码语言:typescript
复制

// counter.state.ts

export interface CounterState {

代码语言:txt
复制
 count: number;

}

export const initialState: CounterState = {

代码语言:txt
复制
 count: 0

};

代码语言:txt
复制
  1. 创建一个名为counter.actions.ts的文件,用于定义与计数相关的操作。例如,可以定义一个名为Increment的操作来增加计数值。例如:
代码语言:typescript
复制

// counter.actions.ts

import { createAction } from '@ngrx/store';

export const increment = createAction('Counter Increment');

代码语言:txt
复制
  1. 创建一个名为counter.reducer.ts的文件,用于处理与计数相关的操作。在这个reducer中,根据不同的操作类型更新计数值。例如:
代码语言:typescript
复制

// counter.reducer.ts

import { createReducer, on } from '@ngrx/store';

import { increment } from './counter.actions';

import { initialState } from './counter.state';

export const counterReducer = createReducer(

代码语言:txt
复制
 initialState,
代码语言:txt
复制
 on(increment, (state) => {
代码语言:txt
复制
   return {
代码语言:txt
复制
     ...state,
代码语言:txt
复制
     count: state.count + 1
代码语言:txt
复制
   };
代码语言:txt
复制
 })

);

代码语言:txt
复制
  1. 在你的应用程序的模块文件中,将counterReducer添加到StoreModule的reducers中。例如:
代码语言:typescript
复制

// app.module.ts

import { StoreModule } from '@ngrx/store';

import { counterReducer } from './counter.reducer';

@NgModule({

代码语言:txt
复制
 imports: [
代码语言:txt
复制
   StoreModule.forRoot({ counter: counterReducer })
代码语言:txt
复制
 ]

})

export class AppModule { }

代码语言:txt
复制
  1. 在你的组件中,使用@ngrx/store来选择(select)计数值。可以通过创建一个名为selectCount的选择器来选择计数值。例如:
代码语言:typescript
复制

// counter.selectors.ts

import { createSelector, createFeatureSelector } from '@ngrx/store';

import { CounterState } from './counter.state';

export const selectCounterState = createFeatureSelector<CounterState>('counter');

export const selectCount = createSelector(

代码语言:txt
复制
 selectCounterState,
代码语言:txt
复制
 (state: CounterState) => state.count

);

代码语言:txt
复制
  1. 在你的组件中,使用@ngrx/effects来处理与计数相关的副作用。可以创建一个名为CounterEffects的效果(effect),在这个效果中,订阅(subscribe)计数值的变化,并执行相应的操作。例如:
代码语言:typescript
复制

// counter.effects.ts

import { Injectable } from '@angular/core';

import { Actions, createEffect, ofType } from '@ngrx/effects';

import { tap } from 'rxjs/operators';

import { selectCount } from './counter.selectors';

@Injectable()

export class CounterEffects {

代码语言:txt
复制
 logCount$ = createEffect(() => {
代码语言:txt
复制
   return this.actions$.pipe(
代码语言:txt
复制
     ofType('[Counter] Increment'),
代码语言:txt
复制
     select(selectCount),
代码语言:txt
复制
     tap((count) => {
代码语言:txt
复制
       console.log('Count:', count);
代码语言:txt
复制
     })
代码语言:txt
复制
   );
代码语言:txt
复制
 });
代码语言:txt
复制
 constructor(private actions$: Actions) {}

}

代码语言:txt
复制
  1. 在你的应用程序的模块文件中,将CounterEffects添加到EffectsModule的effects中。例如:
代码语言:typescript
复制

// app.module.ts

import { EffectsModule } from '@ngrx/effects';

import { CounterEffects } from './counter.effects';

@NgModule({

代码语言:txt
复制
 imports: [
代码语言:txt
复制
   EffectsModule.forRoot([CounterEffects])
代码语言:txt
复制
 ]

})

export class AppModule { }

代码语言:txt
复制

通过以上步骤,你可以在具有@ngrx/effects@4.1.1和@ngrx/store@4.1.1的Angular 4应用程序中从观察值中获取计数值。这样做的好处是可以将状态和副作用(例如日志记录)与应用程序的其他部分分离开来,使代码更加模块化和可维护。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

angular4实战(4)ngrx

https://blog.csdn.net/j_bleach/article/details/78161765 ngrx ngrx是angular的状态管理库,与...同react-redux 相似,ngrx的核心也是通过reducer来获取储存在store中的值(状态),通过action来改变store的中值(状态)。...定义loading的action和reducer 在项目中创建ngrx文件夹,并在之下创建action和reducer文件。...高中英语水平翻译一下:async这个管道,会返回订阅的Observe ,promise对象的最新的值,当观察者发现值有改变时,就会触发组件的检查策略,并且在组件销毁时也会自动的去取消订阅避免内存泄漏。...在本例中,如果把async这个过滤器取消的话,会造成一直loading,因为组件无法在监听到控制loading值的改变,也就无法更新视图了。

1.1K30
  • Angular 2 + 折腾记 :(3)初步了解服务及使用

    前言 不探究高深理论,只探究实际使用,有更好的写法或者经验请指出; 有些暂时没涉及到的知识我可能会顺着例子解释; ---- 什么是服务 简言之:就是资源获取,以及通讯逻辑处理的地方; Angular2...这可能和每个人的开发理念不一样。。举一个例子,看代码。...this.authHttp.post(environment.baseUrl + 'VehicleFault/VehicleFaultList', data); } // 获取单个车辆的故障列表...{ return this.authHttp.post(environment.baseUrl + 'VehicleFault/ClearFault', data); } // 这里的每个接口返回一个可观察的订阅对象...}) export class VehicleFaultModule { }复制代码 // 引入一些生命周期的控制,组件值传递响应接口等 import { Component, OnInit

    1.6K20

    Angular vs React 最全面深入对比

    如今,Angular和React这两个JavaScript框架可谓红的发紫,同时针对这两个框架的选择变成了当下最容易被问及或者被架构设计者考虑的问题,本文或许无法告诉你哪个框架更优秀,但尽量从更多的角度去比较两者...要掌握它,您将需要了解不同类型的“可观察”,“主题”以及大约一百种方法和操作符 。 当您使用连续数据流(如Web套接字)工作很多的情况下,RxJS非常有用,但是对于其他任何东西来说似乎过于复杂。...@ngrx/store @ngrx/store是由Redux启发的Angular的状态管理库,基于由pure reducer进行突变的状态。...不像Redux那样将状态保存在一个不可变的存储中,它鼓励您仅存储最低限度的必需状态,并从其中获取剩余的数据。它提供了一组装饰器来定义可观察和观察者,并将反应逻辑引入到你的状态管理代码中。...框架本身丰富的技术主题可以从诸如模块,依赖注入、装饰器、组件、服务、管道、模板和指令等基础开始,到更高级的主题,如更改检测,区域,AoT编译和RxJS。这些都在文档中。

    3.8K70

    同样做前端,为何差距越来越大?

    由于历史原因,开发框架同时基于 React 和 Angular,考虑到产品的复杂性、人员的短缺和技术背景各异,我们尝试了各种方法打磨工具体系来提升开发效率,以下分享五点。 ?...一、基于 Redux 的状态管理 从2013年React发布至今已近6个年头,前端框架逐渐形成 React/Vue/Angular 三足鼎立之势。...庆幸的是除了 React 社区,Vue 社区有类似的 Vuex,Angular 社区有 NgRx 也提供了几乎同样的能力,甚至 NgRx 还可以无缝使用 redux-devtools 来调试状态变化。...曾经 React 和 Angular 是两个很难调和的框架,开发中浪费了我们大量的人力。...代码和工具全面拥抱 TS 后,实现了从后端 API 接口到 View 组件的全链路静态分析,具有了完善的代码提示和校验能力。 ?

    1.2K20

    给2019前端开发的你5个进阶建议~

    由于历史原因,开发框架同时基于 React 和 Angular,考虑到产品的复杂性、人员的短缺和技术背景各异,我们尝试了各种方法打磨工具体系来提升开发效率,以下是节选的5项主要方法。...一、基于 Redux 的状态管理 从2013年React发布至今已近6个年头,前端框架逐渐形成 React/Vue/Angular 三足鼎立之势。...庆幸的是除了 React 社区,Vue 社区有类似的 Vuex,Angular 社区有 NgRx 也提供了几乎同样的能力,甚至 NgRx 还可以无缝使用 redux-devtools 来调试状态变化。...曾经 React 和 Angular 是两个很难调和的框架,开发中浪费了我们大量的人力。...代码和工具全面拥抱 TS 后,实现了从后端 API 接口到 View 组件的全链路静态分析,具有了完善的代码提示和校验能力。 ?

    1K10

    【译】我是如何学习任意前端框架的

    现在,所有框架都提供API来管理你的状态(例如Angular有一个Service,React现在有Context API)以及当你的数据规模变大之后,你可以考虑使用像redux这样的库。...创建项目 image.png 为了理解事物的某些方面,你需要很好地了解它,这些知识(获取)不是仅仅来自阅读书籍或者观看视频课程。...项目的条理是从最简单到最全面。...项目实例: 书签应用 To-Do App 你将学到: 验证用户的表单输入,如果用户输入错误就提示错误信息 如何创建put、delete、post和get的HTTP请求 将你的应用程序和任意后端框架集成...你将学到: 学习如何使用管理状态解决方案,如redux for react, ngrx for angular 2+ 或 vuex for vuejs以及如何将其与客户端应用程序集成 使你的应用更灵活

    3.6K10

    前端架构101:MVC的不足与Flux的崛起

    实现的例子,无论是 view 文件还是 controller 文件,其它们的职责并不明确,他们同时在负责好几件事情: 管理 view model,例如负责保存和清空用户输入的值 协调用户流程,例如首先将用户输入值清空...,然后提交新数据,再刷新数据列表 负责为不同的 dom 元素绑定事件处理函数 不说大道理,和当下的 React 或者 Angular 组件相比,直接后果是这些模块是无法复用的。...年后:Redux, Ngrx, Mobx, Akita, Ngxs 前者倾向于碎片化,各司其职的辅助性的功能;后者倾向于应用级别的数据管理 事件机制和双向绑定更适用于小规模的范围内,随着应用级别不断扩大...包括但不限于:Redux,Mobx,Ngrx,Akita,React 等等。...首先就像我在前几篇中提到的那样,从客户端到后端到前端并没有“标准的 MVC” 一说。

    1.4K20

    react-redux 开发实践与学习分享

    在各大框架中均可使用,当然各个框架也有自己再度封装的状态管理库,如angular的ngrx,vue的vuex,而本文主要介绍的是react的react-redux。 示例介绍 ?...关联rudex和页面组件-connect 从之前主页面的代码可以看到,错误信息的显示是由组件的props传进来的,而主页面是如何获取相关的props的呢,答案是通过一个connect的函数。...mapStateToProps(state, ownProps) 第一个参数是获取redux仓库中的值的一个函数。...为了方便快速理解,我们可以简单粗暴的认为他是js中getter,setter中的getter,这是一个用来从redux中获取值的函数,这个函数返回的值,可以在当前组件的props中拿到。...,使得rudex可以保存记录一些你想要记录改变的状态和值。

    90530

    在同一基准下对前端框架进行比较

    通常“todo”并没有传达出在构建真正的程序时所需的足够的知识和视角,。 标准化 一个符合某些规则的项目。提供后端API、静态标记、样式和规范。...根据规范,你需要多少行代码才能实现几乎相同的程序(其中一些会有更多的额外功能)。 ? 代码行数 - 越少越好 注意 Imba:由于 cloc 无法处理 *.imba 文件而跳过了它。...注意 Angular + ngrx:在 /libs 文件夹内完成的代码行数计算,仅包括*.ts 和 *.html 文件。如果你觉得这是错的,请告诉我正确的值是多少,以及你是如何计算的。...答:要研究 Elm、PureScript 和 TypeScript 的话,请关注 Angular,AppRun,Dojo。 ---- 问:你写一个占用空间非常小的程序?...上线时可用的那个(2019年3月),我相信你可以从 GitHub repo中找到相关的信息。 #5 为什么你忽略了一个更受欢迎的框架? 最后再说一次,请见上文。

    96020

    这些必备的VSCode JavaScript插件你都用过吗?

    前言 如今,Visual Studio Code无疑是最流行的轻量级代码编辑器。它确实从其他代码编辑器那借鉴了很多,最主要是从Sublime和Atom那里。...JS Refactor(提供许多重构JavaScript代码的实用方法和操作,例如抽取变量和方法,把现有代码转为使用箭头函数和模板字符串的等价形式,导出函数等。)...浏览器插件 除非你是在用JavaScript写控制台程序,否则你多半会在浏览器中执行你的JavaScript代码。这意味着,你会频繁地刷新浏览器以观察每次你更新代码的效果。...Angular 6(提供Angular 6的代码片段,支持TypeScript、HTML、Angular Material ngRx、RxJS和Flex Layout。...目前有220多万的下载量和172个Angular代码片段。) Angular v5 snippets(提供针对TypeScript、RxJS、HTML和Docker文件的代码片段。

    6K10

    8分钟为你详解React、Angular、Vue三大框架

    Hooks是让开发者从函数组件中 "钩入"React状态和生命周期特性的函数。它们使代码具有更强的可读性且更易理解。Hooks并不在类组件内工作,它的终极目标是在React中消除类组件的存在。...这种情况也就决定了React技术在创建网页应用时标准无法统一。 ?...Flux架构的使用 为了支持React的单向数据流的概念(与AngularJS/Angular的双向数据流形成对比),Flux架构是流行的模型-视图-控制器(MVC)架构的具有代表性的替代方案。...动态加载 异步模板编译 由RxJS提供的迭代回调。RxJS限制了状态的可见性和调试,但这些问题可以通过像ngReact或ngrx这样的反应式附加组件来解决。...常用命令 从终端上,全局安装Angular CLI: npm install -g @angular/cli 使用 ng new 命令创建一个新的 Angular CLI 工作区: ng new my-project-name

    22.2K20

    多栈与实践

    React:由Facebook开发的前端库,专注于构建UI组件,具有虚拟DOM,提升性能。Vue.js:一个渐进式JavaScript框架,易于上手,灵活性高,适合中小型项目。...Angular:由Google维护的全功能框架,适用于大型企业级应用,提供了从UI到路由、状态管理、表单处理等一整套解决方案。3. 状态管理随着应用的复杂性增加,前端的状态管理变得尤为重要。...NgRx(与Angular配合使用):基于Redux模式的状态管理工具。4. 构建工具和包管理Webpack:一个现代JavaScript应用的打包工具,支持模块化、代码分割、热更新等。...前端:Angular / 后端:Spring Boot + MySQL2...., Angular, Node.js)JAMstack(JavaScript, APIs, Markup):适用于静态网站生成和无服务器架构。

    8910

    作为JavaScript开发人员,这些必备的VS Code插件你都用过吗?

    如今,Visual Studio Code无疑是最流行的轻量级代码编辑器。它确实从其他代码编辑器那借鉴了很多,最主要是从Sublime和Atom那里。...浏览器插件 除非你是在用JavaScript写控制台程序,否则你多半会在浏览器中执行你的JavaScript代码。这意味着,你会频繁地刷新浏览器以观察每次你更新代码的效果。...Angular 6:提供Angular 6的代码片段,支持TypeScript、HTML、Angular Material ngRx、RxJS和Flex Layout。...目前有220多万的下载量和172个Angular代码片段。 Angular v5 snippets:提供针对TypeScript、RxJS、HTML和Docker文件的代码片段。...Ionic Extesion Pack:这个包里有针对Ionic、Angular、RxJS、Cordova和HTML开发的插件。

    2.9K10

    Angular v18 现已推出!

    如需直观概述,请务必查看我们发布活动中的视频:不断发展的变化检测从历史上看,一个名为 zone.js 的库负责触发 Angular 的更改检测。该库具有许多开发人员体验和性能缺点。...如果没有区域,Angular 会将此检查限制为更少的触发器,例如信号更新。此更改还包括一个具有合并功能的新调度程序,以避免连续多次检查更改。...不幸的是,async/await 是zone.js无法修补的 API 之一,因此我们需要通过 Angular CLI 将其降级为 promises。...使用它,您可以跟踪值、触摸状态、原始状态和控制状态的变化。...社区亮点随着 Angular 的创新,我们也看到了社区中的大量进步!ngrx、ngxs 和 rxAngular 等流行的状态管理库已经在采用 Angular 信号,并在组件中实现细粒度的反应性。

    28110

    如何成为一名Web前端开发人员?入行学习完整指南

    Web开发人员负责许多任务,从收集需求到设计网站,处理网站的后端部分,并使其成功地为用户服务。 每年,行业中都会涌现出新技术和工具,以提高开发人员的工作效率,并为用户提供更好的网站。...后端和全栈开发也是如此。 2、Web开发的基本工具和软件 计算机和操作系统:如果没有计算机和操作系统,则无法编写代码。要学习Web开发,你不需要任何高端计算机(如果你拥有的话,那么更好……)。...3、从HTML和CSS开始 HTML和CSS是Web开发的基本构建块。无论您的Web应用程序有多先进,或者使用什么框架和后端语言,都必须使用HTML和CSS构建前端应用程序。...VueX是为视图而构建的状态管理器。 Angular:此框架通常在大型组织中使用。它具有相当陡峭的学习曲线。用Angular学习 TypeScript也很好。...它允许您使用可选的静态类型并支持ES2015的功能。NGRX和 Services是可以学习此框架的良好状态管理器。

    2.2K11

    都9102年了,还需要用到 jQuery 吗?

    它具有较低的学习曲线,并且比较容易让人在很短的时间内学会并成为它的专家。它满足了开发人员和设计人员的需求,因为它大大减少了构建时间。...相对易用性 - jQuery 的一个缺点是很容易写出面条代码。由于对 jQuery 的选择链使用不当,使用非描述性变量名并尝试编写复杂函数时,jQuery 可能会导致写出最终无法维护的代码。...jQuery React JS Angular JS Vue JS 类型 库 UI库 全功能框架 在库和功能齐全的框架之间进行扩展。...实现双向数据 状态管理 可以使用专门的库来实现 Context API,Redux 第三方库,如NGRX,NGXS等 Vuex 模板 JavaScript JavaScript(JSX) TypeScript...和 Angular 指令 HTML,CSS,JavaScript 和 Vue 指令 学习曲线 低 低,但需要较高水平的 JavaScript 知识 高 仅需要 JavaScript 的基础知识即可入门

    2.2K40

    AngularDart 4.0 高级-生命周期钩子 顶

    Angular提供生命周期挂钩,提供这些关键生命时刻的可视性以及发生时的行为能力。 指令具有相同的生命周期挂钩集,减去特定于组件内容和视图的挂钩。...ngDoCheck 检测Angular无法或无法自行检测到的更改并采取相应措施。 在每次更改检测运行期间,立即在ngOnChanges和ngOnInit之后调用。...看看Angular多久会调用这个钩子,并在更改日志后观察它。 AfterView 通过视图显示Angular的意图。 演示ngAfterViewInit和ngAfterViewChecked挂钩。...构造函数不应仅仅将初始局部变量设置为简单值。 ngOnInit是组件获取其初始数据的好地方。 教程和HTTP章节显示了如何。 还要记住,指令的数据绑定输入属性在构建之后才会设置。...hero属性的值是对hero对象的引用。 Angular并不在意英雄自己的name属性发生了变化。 英雄对象引用没有改变,所以从Angular的角度来看,没有改变的反馈!

    6.2K10

    从零开始搭建创业公司全新技术栈解决方案

    无论你是一个技术小白还是资深开发者,本文将带你详细了解从开发语言、组件选择、流程制定到系统化建设的方方面面,逐步搭建一个适合创业公司的全栈技术方案。...Java Java是一种面向对象的编程语言,具有高度的可移植性和稳定性。 优点: 强大的生态系统和丰富的开源库。 广泛应用于企业级应用开发。 高性能和高可靠性,适合处理大规模并发请求。...Angular:由Google开发的前端框架,适用于大型应用开发,功能强大。 状态管理 Redux:React应用常用的状态管理库,集中管理应用状态。...Vuex:Vue.js应用的状态管理模式,集成在Vue生态中。 NgRx:Angular应用的状态管理库,基于Redux模式。...Oracle:商用关系数据库,提供全面的数据管理和分析功能,适用于大型企业级应用。 MariaDB:MySQL的分支,开源社区维护,具有更高的性能和功能扩展性。

    26210
    领券