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

如何给ngrx reducer/ action一个值来设置状态?

在ngrx中,reducer和action是用来管理应用状态的重要概念。下面是如何给ngrx reducer/action一个值来设置状态的步骤:

  1. 创建一个action:在ngrx中,action是一个简单的对象,用于描述应用中发生的事件。你可以使用createAction函数来创建一个action。例如,假设你要设置一个名为setValue的action,可以使用以下代码创建它:
代码语言:txt
复制
import { createAction, props } from '@ngrx/store';

export const setValue = createAction(
  '[Your Feature] Set Value',
  props<{ value: any }>()
);

在上面的代码中,setValue是action的名称,props<{ value: any }>()定义了action的参数。

  1. 创建一个reducer:reducer是一个纯函数,用于根据action的类型来更新应用的状态。你可以使用createReducer函数来创建一个reducer。例如,假设你要创建一个名为valueReducer的reducer,可以使用以下代码:
代码语言:txt
复制
import { createReducer, on } from '@ngrx/store';
import { setValue } from './your-actions';

export const initialState = {
  value: null
};

export const valueReducer = createReducer(
  initialState,
  on(setValue, (state, { value }) => ({ ...state, value }))
);

在上面的代码中,initialState定义了初始状态,on(setValue, (state, { value }) => ({ ...state, value }))定义了当setValue action被触发时如何更新状态。

  1. 在应用中使用reducer和action:要在应用中使用reducer和action,你需要将它们添加到ngrx的store中。在你的模块中,使用StoreModule.forRoot函数来配置ngrx store。例如:
代码语言:txt
复制
import { StoreModule } from '@ngrx/store';
import { valueReducer } from './your-reducer';

@NgModule({
  imports: [
    StoreModule.forRoot({ value: valueReducer })
  ]
})
export class YourModule { }

在上面的代码中,valueReducer被添加到了ngrx store中,并且可以通过store.select来访问它。

  1. 设置状态:要设置状态,你可以在组件中使用store.dispatch来分发一个action。例如,假设你的组件中有一个按钮,当点击按钮时,你想将状态设置为特定的值。你可以在组件的方法中使用以下代码来分发setValue action:
代码语言:txt
复制
import { Component } from '@angular/core';
import { Store } from '@ngrx/store';
import { setValue } from './your-actions';

@Component({
  selector: 'your-component',
  template: `
    <button (click)="setValue()">Set Value</button>
  `
})
export class YourComponent {
  constructor(private store: Store) {}

  setValue() {
    const value = 'your value';
    this.store.dispatch(setValue({ value }));
  }
}

在上面的代码中,当按钮被点击时,setValue方法会分发setValue action,并传递一个值作为参数。

这样,当setValue action被分发时,ngrx会调用reducer来更新状态,从而实现状态的设置。

请注意,以上代码示例中的your-actionsyour-reduceryour-component等名称是示例中的占位符,你需要根据你的实际应用进行相应的命名和组织。

关于ngrx的更多信息和使用方法,你可以参考腾讯云提供的ngrx相关文档和资源:

相关搜索:如何在Ngrx 9.x中设置状态值?如何将输入值设置为redux reducer文件中的状态?React Hook来设置一个状态值,如果为null?如何将状态值赋给Angural组件中的字符串变量[ngrx Store]如何在useState中使用redux状态来设置初始值如何使用useReducer在一个对象状态中设置多个值?如何使用React setState()将状态设置为一个常量特定值?如何迭代一个功能组件,然后通过更改react中的记录来设置状态?如何在延迟加载的模块之间共享ngrx状态,我们可以有一个共享模块来做到这一点吗?如何设计单元测试来创建一个用户可以设置多个值的对象?如何使用javafx根据来自另一个组合框的点击值来设置组合框的值如何通过在另一个数据帧中查找基于索引的值并将值设置为特定的行和列来设置值?如何给输入"submit"-type一个文本值和一个PHP,以便通过POST请求来标识该值以删除数据库条目?我们如何发送一个隐藏在php中的jquery金额字段给另一个页面来检索金额的值呢?如何使用来自另一个反应对象(ref)的值来设置反应对象(ref)的值?NUnit测试-如何设置一个称为内部公共方法的私有方法来返回特定值?如何打开一个文本字段并在react的下拉列表中选择一些值来设置它的值如何在spark scala中将文本文件字符串赋给字典值为一个变量,以及如何通过传递键值来提取值?如何使用标签从另一个pd.DataFrame中选择内容来设置pandas DataFrame中的值选择如何根据no设置我的行跨度的值。如果它是一个组或集合,那么是否根据它们的集合id来更改该值?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular 接入 NGRX 状态管理

NGRX 状态管理生命周期图中包含了以下元素: Store:集中的状态存储; Action:根据用户所触的不同事件执行不同的 ActionReducer:根据不同的 Action 对 Store...NGRX 状态管理中包含了两条变更状态的主线: 同步变更状态:用户 => Action => Reducer => Store(State); 异步变更状态:用户 => Action => Effects...更新状态Reducer: 选项介绍: 选项 作用 --reducers 执行reducers存放路径,约定路径为上一级的 index.ts,也是 store 创建的文件 --skip-tests...,紧接着就执行 UpdateUser Action获取网络上的用户数据: export class AppComponent implements OnInit { ......,所以你可以将代码回退到最初的状态,实现一个接入实体更加贴切的案例 — TodoList。

23110
  • 一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序

    通过使用它,我们确保我们的数据流一旦发生this.alive错误就会停止发布新,并且我们只需在该onDestroy组件的函数中设置。...反应角 - Ngrx 让我们谈谈我们的应用程序状态,我的意思是我们的应用程序的所有属性,它们的字面定义其当前的行为和状态。...为此,我们使用Reducers的纯函数,这意味着对于任何给定的State和Action它的payloadreducer,它将返回与使用相同参数的reducer函数的任何其他调用相同的状态。...首先,我们为RouterLinkActive添加了路由器指令,该指令在我们的路由处于活动状态设置一个类,以及为我们替换的routerLinkhref。...什么是NgRXNgRX是一种管理应用程序状态的模式。这是一个支持Angular应用程序的RxJS驱动的状态管理库。

    42.6K10

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

    开讲react-rudex 最初看文档的时候,有一种体验,就是各个模块(action,reducer,store)等等,都看明白了,但是具体想去完成功能的时候还是一脸懵逼,不知道如何下手,于是这次为了去更好的讲解示例...redux中的所有状态连接起来。...因为在主页面只会取值,而不会设置,因此connect只需要这一个函数足够。 ownProps这里还可以穿第二个参数,第二个参数特指当前组件的props,可以用来做信息对比。本例没有用到。...而这个行为就是actionaction具体定义了项目中触发的行为类别,通过type属性区别于不同的行为。...在mapStateToProps这个取值函数中,取的也就是相关reducer中返回的。 触发相关action后的主页控制台: ?

    90030

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

    庆幸的是除了 React 社区,Vue 社区有类似的 Vuex,Angular 社区有 NgRx 也提供了几乎同样的能力,甚至 NgRx 还可以无缝使用 redux-devtools 调试状态变化。...是纯函数 副作用如何处理,大量样板代码 这三个问题我们是通过自研 iron-redux 库解决,以下是背后的思考: 如何组织 Action?.../SUCCESS/ERROR 这 3 个action,我们通过 FetchTypes 类型来自动生成对应到 3 个 action 如何组织 Store/Reducer?...reducer 和 view 不必一一对应,应用中同时存在组件树和状态树,按照各自需要去组织,通过 connect 绑定状态树的一个或多个分支到组件树 通过构造一些预设数据类型减少样板代码。...Redux 状态如何减少样板代码? 使用原生 Redux,一个常见的请求处理如下。

    1K10

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

    庆幸的是除了 React 社区,Vue 社区有类似的 Vuex,Angular 社区有 NgRx 也提供了几乎同样的能力,甚至 NgRx 还可以无缝使用 redux-devtools 调试状态变化。...无论如何优化,始终要遵循 Redux 三原则: ? 这三个问题我们是通过自研 iron-redux 库【1】解决,以下是背后的思考: 如何组织 Action?...action type 需要全局惟一,因此我们 action type 添加了 prefix,其实就是 namespace 的概念; 为了追求体验,请求(Fetch)场景需要处理 3 种状态,对应 LOADING...如何组织 Store/Reducer?...reducer 和 view 不必一一对应,应用中同时存在组件树和状态树,按照各自需要去组织,通过 connect 绑定状态树的一个或多个分支到组件树; 通过构造一些预设数据类型减少样板代码。

    1.2K20

    React中的Redux

    学习必备要点: 首先弄明白,Redux在使用React开发应用时,起到什么作用——状态集中管理 弄清楚Redux是如何实现状态管理的——store、actionreducer三个概念 在React中集成...Reducer拆分 这里我们以redux中文文档 中的todo应用为例来说明,在应用的需求中,有添加todo项,设置todo列表的过滤条件等多个action,同理我们就需要写多个reducer描述状态是怎么改变的...主 reducer 并不需要设置初始化时完整的 state。初始时,如果传入 undefined, 子 reducer 将负责返回它们的默认。这个过程就是reducer合并。...容器组件 还需要一个容器组件把展示组件连接到Redux。例如HelloPanel 组件需要一个状态类似HelloApp的容器监听Redux store变化并处理如何过滤出要展示的数据。...我们这三种状态一个名字,并设置0,1,2顺序表示不同的状态

    4K20

    翻译 | Thingking in Redux(如果你只了解MVC)

    你的reducers将会掌管应用程序的当前状态(比如: 用户信息、api载入的数据、需要展示的数据)。当一个action被调用时,reducer决定需要做些什么。...在MVC中你可能有一个带setName()方法的model,在Redux中,你将会有一个reducer,它负责处理一个action,并将name设置到state中去。...它有一个方法获得当前的状态,并且暴露出方法订阅state的变动(使用“connect()”方法)。这就是Redux允许你调用action,并能将它们像props一样传入组件的秘密了。...在这个例子中,我将会展示如何编辑一个text input,然后当有用户按下按键时它将会调用action保存内容。.../actions.js'; /** 初始状态被用来定义你的reducer。 通常你将会把它设置为默认和空字符串。需要这么做的理由是,当要使用这些的时候,你至少保证它们有一个默认

    1.3K100

    React和Redux——状态管理Flux和Redux

    派发的动作并根据动作决定如何更新应用的状态 const Store = Object.assign({}, EventEmitter.prototype, { getValue: function...2、保持状态只读 在Redux中,如果想要修改组件状态达到驱动用户界面重新渲染的目的不是通过this.setState去修改组件的State状态而是创建一个新的状态对象返回Redux,由Redux完成新状态的渲染...Redux基本使用 4.jpg 在Redux中仅仅维护了一个状态管理Store,不需要像Flux中一样单独有一个Dispatcher对象派发动作action所有Store绑定的回调函数;在Redux...当View需要改变Store的时候,使用Store的dispatch方法派发一个特定ActionType的动作Action。...Store由Redux维护,Redux负责存储数据最新的状态并将当前状态和动作传递给Reducer进行状态计算,计算后返回更新后的状态又交由Store存储。

    1.8K80

    React进阶(3)-上手实践Redux-如何改变store中的数据

    创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer一个纯函数,返回一个新的statestore // 4....在Reducer中会接收到action,通过if等判断,确定要执行state的操作,这个reducer必须是个纯函数,要有返回,返回的结果会返回store,这里的state是上一次(原先)组件的状态...创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer一个纯函数,返回一个新的statestore // 4....创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer一个纯函数,返回一个新的statestore // 4....state与action这个的决定,最终该函数的返回的最新结果会返回store,完成新旧数据的替换, 而在组件中如何获取store的数据,是通过getState方法进行获取store中的所有状态 如何保持页面的组件与

    2.6K30

    ReactNative之Redux详解

    下方我们就来简单的看一下RN中如何使用Redux实现该功能。 ?...我们State对象赋了一个默认, 这个默认中有两个一个是表示加法结果的 addResult, 另一个是表示减法结果的 descResult。...而在Reducer中通过Action的Type字段判断是做加法操作还是减法操作。如果是Add则是加法操作,将payload中的两个相加,然后将结果赋值 state 中的addResult。...Reducer则根据提供的Action信息修改对应的State的,并返回Store,更新。...从下图中不难看出,平时在开发时,Component一般是有多个的,而Store只有一个,这些Component都像Store派发Action修改对应的状态,并且可以通过Subscriber监听对应状态的改变

    1.4K10

    React进阶(3)-上手实践Redux-如何改变store中的数据

    创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer一个纯函数,返回一个新的statestore // 4....在Reducer中会接收到action,通过if等判断,确定要执行state的操作,这个reducer必须是个纯函数,要有返回,返回的结果会返回store,这里的state是上一次(原先)组件的状态...创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer一个纯函数,返回一个新的statestore // 4....创建reducer函数,管理组件共享的数据状态以及一些动作 // reducer一个纯函数,返回一个新的statestore // 4....state与action这个的决定,最终该函数的返回的最新结果会返回store,完成新旧数据的替换, 而在组件中如何获取store的数据,是通过getState方法进行获取store中的所有状态 如何保持页面的组件与

    2.2K20

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

    A 中的一个时,你会影响到 Child B 中的。...在我看来它们都拥有和 Flux 相同的特征: 单向数据流 全局状态管理 store / selector / service 等概念的抽象 在谈论 Flux 之前我们先给 Flux 定一个性:Flux...注意 store 层工作是不会引起任何的副作用的,在 store 完成上一个 action 的工作之前,不会有其他的 action 再次经过 dispatch 达到 store。...同时使用 command 模式避免事件机制造成的的不可预测性。剩下的具体概念你应该非常熟悉了 现在回过头再看 Flux,它其实是一个非常强约束的框架。...最初我们只有 model, controller 和 view;但现在我们有 component, store / reducer, action, dispatch, selector / query

    1.4K20

    React Native+React Navigation+Redux开发实用教程

    使用 ES6 的默认参数值语法设置初始 state 很容易,但你也可以手动检查第一个参数是否为 undefined。...返回 (Function):一个调用 reducers 对象里所有 reducerreducer,并且构造一个与 reducers 对象结构相同的 state 对象。...当 store 创建后,Redux 会 dispatch 一个 actionreducer 上,来用初始的 state 填充 store。你不需要处理这个 action。...; 如何动态的设置store,和动态获取store(难点:storekey不固定); 如何实现可取消的redux action:可参考SearchPage的设计; 上述的实战技巧可在新版React Native...当需要拆分数据处理逻辑时,你应该使用 reducer 组合 而不是创建多个 store; redux一个特点是:状态共享,所有的状态都放在一个store中,任何component都可以订阅store中的数据

    3.9K10
    领券